# Undulating numbers

An undulating number is a number that has only two types of digits and alternate digits are same, i.e., it is of the form “ababab….”. It is sometimes restricted to non-trivial undulating numbers which are required to have at least 3 digits and a is not equal to b.

The first few such numbers are: 101, 121, 131, 141, 151, 161, 171, 181, 191, 202, 212, 232, 242, 252, 262, 272, 282, 292, 303, 313, 323, 343, 353, 363, 373, 383, 393, 404, 414, 424, 434, 454, 464, 474, 484, 494, …
Some higher undulating numbers are: 6363, 80808, 1717171.

1. For any n >= 3, there are 9 × 9 = 81 non-trivial n-digit undulating numbers, since the first digit can have 9 values (it cannot be 0), and the second digit can have 9 values when it must be different from the first.

Given a number, check if it is Undulating numbers considering the definition of alternating digits, at least 3 digits and adjacent digits not same.

Examples :

```Input : n = 121
Output : Yes

Input : n = 1991
Output : No```

## C++

 `// C++ program to check whether a number ` `// is undulating or not ` `#include ` `using` `namespace` `std; ` ` `  `bool` `isUndulating(string n) ` `{ ` `    ``// Considering the definition ` `    ``// with restriction that there ` `    ``// should be at least 3 digits ` `    ``if` `(n.length() <= 2) ` `       ``return` `false``; ` ` `  `    ``// Check if all alternate digits are ` `    ``// same or not. ` `    ``for` `(``int` `i = 2; i < n.length(); i++)  ` `        ``if` `(n[i - 2] != n[i])  ` `           ``false``; ` ` `  `    ``return` `true``; ` `} ` ` `  `int` `main() ` `{ ` `    ``string n = ``"1212121"``; ` `    ``if` `(isUndulating(n)) ` `        ``cout << ``"Yes"``; ` `    ``else` `        ``cout << ``"No"``; ` `} `

## Java

 `// Java program to check whether a number ` `// is undulating or not ` `import` `java.util.*; ` ` `  `class` `GFG { ` `     `  `    ``public` `static` `boolean` `isUndulating(String n) ` `    ``{ ` `         `  `        ``// Considering the definition ` `        ``// with restriction that there ` `        ``// should be at least 3 digits ` `            ``if` `(n.length() <= ``2``) ` `                ``return` `false``; ` `     `  `        ``// Check if all alternate digits are ` `        ``// same or not. ` `        ``for` `(``int` `i = ``2``; i < n.length(); i++)  ` `            ``if` `(n.charAt(i-``2``) != n.charAt(i))  ` `                ``return` `false``; ` `     `  `        ``return` `true``; ` `    ``} ` `     `  `     `  `    ``// Driver code ` `    ``public` `static` `void` `main (String[] args) ` `    ``{ ` `         `  `        ``String n = ``"1212121"``; ` `         `  `        ``if` `(isUndulating(n)==``true``) ` `            ``System.out.println(``"yes"``); ` `        ``else` `            ``System.out.println(``"no"``); ` `    ``} ` `} ` ` `  `// This code is contributed by akash1295. `

## Python3

 `# Python3 program to check whether a  ` `# number is undulating or not ` ` `  `def` `isUndulating(n): ` ` `  `    ``# Considering the definition ` `    ``# with restriction that there ` `    ``# should be at least 3 digits ` `    ``if` `(``len``(n) <``=` `2``): ` `        ``return` `False` ` `  `    ``# Check if all alternate digits  ` `    ``# are same or not. ` `    ``for` `i ``in` `range``(``2``, ``len``(n)):  ` `        ``if` `(n[i ``-` `2``] !``=` `n[i]): ` `            ``return` `False` ` `  `    ``return` `True` ` `  `# Driver Code ` `n ``=` `"1212121"` `if` `(isUndulating(n)): ` `    ``print``(``"Yes"``) ` `else``: ` `    ``print``(``"No"``) ` ` `  `# This code is contributed by Smitha Dinesh Semwal.  `

## C#

 `// C# program to check whether a number ` `// is undulating or not ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``public` `static` `bool` `isUndulating(``string` `n) ` `    ``{ ` `         `  `        ``// Considering the definition ` `        ``// with restriction that there ` `        ``// should be at least 3 digits ` `            ``if` `(n.Length <= 2) ` `                ``return` `false``; ` `     `  `        ``// Check if all alternate digits are ` `        ``// same or not. ` `        ``for` `(``int` `i = 2; i < n.Length; i++)  ` `            ``if` `(n[i-2] != n[i])  ` `                ``return` `false``; ` `     `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main () ` `    ``{ ` `         `  `        ``string` `n = ``"1212121"``; ` `         `  `        ``if` `(isUndulating(n)==``true``) ` `            ``Console.WriteLine(``"yes"``); ` `        ``else` `            ``Console.WriteLine(``"no"``); ` `    ``} ` `} ` ` `  `// This code is contributed by Vt_m. `

## PHP

 ` `

Output:

```Yes
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : jit_t

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.