Given a number N. The task is to find the smallest and largest palindromic number possible with N digits.
Examples:
Input: N = 4 Output: Smallest Palindrome = 1001 Largest Palindrome = 9999 Input: N = 5 Output: Smallest Palindrome = 10001 Largest Palindrome = 99999
Smallest N-digit Palindromic Number: On observing carefully, you will observe that for N = 1, the smallest palindromic number will be 0. And for any other value of N, the smallest palindrome will have the first and last digits as 1 and all of the digits in between as 0.
- Case 1 : If N = 1 then answer will be 0.
- Case 2 : If N != 1 then answer will be (10(N-1)) + 1.
Largest N-digit Palindromic Number: Similar to the above approach, you can see that the largest possible palindrome number with N-digits can be obtained by appending 9 for N times. Therefore, largest N digits palindrome number will be 10N – 1.
Below is the implementation of the above approach:
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std;
// Function to print the smallest and largest // palindrome with N digits void printPalindrome( int n)
{ if (n == 1)
{
cout<< "Smallest Palindrome: 0" <<endl;
cout<< "Largest Palindrome: 9" ;
}
else
{
cout<< "Smallest Palindrome: " << pow (10, n - 1) + 1;
cout<< "\nLargest Palindrome: " << pow (10,n) - 1;
}
} // Driver Code int main()
{ int n = 4;
printPalindrome(n);
return 0;
} |
// Java implementation of the above approach class GfG {
// Function to print the smallest and largest
// palindrome with N digits
static void printPalindrome( int n)
{
if (n == 1 )
{
System.out.println( "Smallest Palindrome: 0" );
System.out.println( "Largest Palindrome: 9" );
}
else
{
System.out.println( "Smallest Palindrome: "
+ ( int )(Math.pow( 10 , n - 1 )) + 1 );
System.out.println( "Largest Palindrome: "
+ (( int )(Math.pow( 10 ,n)) - 1 ));
}
}
// Driver Code
public static void main(String[] args) {
int n = 4 ;
printPalindrome(n);
}
} |
# Python 3 implementation of the above approach from math import pow
# Function to print the smallest and largest # palindrome with N digits def printPalindrome(n):
if (n = = 1 ):
print ( "Smallest Palindrome: 0" )
print ( "Largest Palindrome: 9" )
else :
print ( "Smallest Palindrome:" , int ( pow ( 10 , n - 1 )) + 1 )
print ( "Largest Palindrome:" , int ( pow ( 10 ,n)) - 1 )
# Driver Code if __name__ = = '__main__' :
n = 4
printPalindrome(n)
# This code is contributed by # Surendra_Gangwar |
// C# implementation of the approach using System;
class GfG
{ // Function to print the smallest and largest
// palindrome with N digits
static void printPalindrome( int n)
{
if (n == 1)
{
Console.WriteLine( "Smallest Palindrome: 0" );
Console.WriteLine( "Largest Palindrome: 9" );
}
else
{
Console.WriteLine( "Smallest Palindrome: "
+ ( int )(Math.Pow(10, n - 1)) + 1);
Console.WriteLine( "Largest Palindrome: "
+ (( int )(Math.Pow(10,n)) - 1));
}
}
// Driver Code
public static void Main(String[] args)
{
int n = 4;
printPalindrome(n);
}
} /* This code contributed by PrinciRaj1992 */ |
<?php // PHP implementation of the above approach // Function to print the smallest and largest // palindrome with N digits function printPalindrome( $n )
{ if ( $n == 1)
{
echo "Smallest Palindrome: 0\n" ;
echo "Largest Palindrome: 9" ;
}
else
{
echo "Smallest Palindrome: " ,
pow(10, $n - 1) + 1;
echo "\nLargest Palindrome: " ,
pow(10, $n ) - 1;
}
} // Driver Code $n = 4;
printPalindrome( $n );
// This code is contributed by ihritik ?> |
<script>
// Javascript implementation of the above approach
// Function to print the smallest and largest
// palindrome with N digits
function printPalindrome(n)
{
if (n == 1)
{
document.write( "Smallest Palindrome: 0<br>" );
document.write( "Largest Palindrome: 9" );
}
else
{
document.write( "Smallest Palindrome: " + (parseInt(Math.pow(10, n - 1)) + 1));
document.write( "<br>Largest Palindrome: " + parseInt(Math.pow(10, n) - 1));
}
}
// Driver Code
var n = 4;
printPalindrome(n);
// This code is contributed by rrrtnx. </script>
|
Smallest Palindrome: 1001 Largest Palindrome: 9999
Time Complexity: O(logn)
Auxiliary Space: O(1)