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.
- 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++ program to check whether a number // is undulating or not #include <bits/stdc++.h> 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 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 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# 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 // PHP program to check whether a // number is undulating or not function isUndulating( $n )
{ // Considering the definition
// with restriction that there
// should be at least 3 digits
if ( strlen ( $n ) <= 2)
return false;
// Check if all alternate
// digits are same or not.
for ( $i = 2; $i < strlen ( $n ); $i ++)
if ( $n [ $i - 2] != $n [ $i ])
false;
return true;
} // Driver code $n = "1212121" ;
if (isUndulating( $n ))
echo ( "Yes" );
else echo ( "No" );
// This code is contributed by Ajit. ?> |
<script> // JavaScript program to check whether a number // is undulating or not function isUndulating(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 (let i = 2; i < n.length; i++)
if (n[i-2] != n[i])
return false ;
return true ;
}
// Driver Code let n = "1212121" ;
if (isUndulating(n)== true )
document.write( "Yes" );
else
document.write( "No" );
</script> |
Yes
Time complexity: O(N) where N is no of digits of given number
Auxiliary Space: O(1)