Smallest and Largest Palindrome with N Digits
Last Updated :
22 Jun, 2022
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++
#include <bits/stdc++.h>
using namespace std;
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;
}
}
int main()
{
int n = 4;
printPalindrome(n);
return 0;
}
|
Java
class GfG {
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 ));
}
}
public static void main(String[] args) {
int n = 4 ;
printPalindrome(n);
}
}
|
Python3
from math import pow
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 )
if __name__ = = '__main__' :
n = 4
printPalindrome(n)
|
C#
using System;
class GfG
{
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));
}
}
public static void Main(String[] args)
{
int n = 4;
printPalindrome(n);
}
}
|
PHP
<?php
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;
}
}
$n = 4;
printPalindrome( $n );
?>
|
Javascript
<script>
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));
}
}
var n = 4;
printPalindrome(n);
</script>
|
Output:
Smallest Palindrome: 1001
Largest Palindrome: 9999
Time Complexity: O(logn)
Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...