Palindrome Number: remains the same when it's reverse the digits.
Example:
212
717
Problem statement:- Program to Find the nth Palindrome Number.
Data requirement:-
Input Data:- rangenumber
Output Data:- rangenumber, letest
Additional Data:- c, num, num1, sum, rem, num2
Program in C
Here is the source code of the C Program to Find the nth Palindrome Number.
Code:
//Write a program to find the nth palindrome number.
#include <stdio.h>
int
main ()
{
int i, rangenumber, num = 1, c = 0, letest = 0;
printf ("Enter the Nth value:");
scanf ("%d", &rangenumber);
while (c != rangenumber)
{
int num1=num;
int num2=0;
while(num1!=0)
{
int rem=num1%10;
num1/=10;
num2=num2*10+rem;
}
if(num==num2)
{
c++;
letest=num;
}
num = num + 1;
}
printf ("%dth palindrome number is %d", rangenumber, letest);
return 0;
}
Input/Output:#include <stdio.h>
int
main ()
{
int i, rangenumber, num = 1, c = 0, letest = 0;
printf ("Enter the Nth value:");
scanf ("%d", &rangenumber);
while (c != rangenumber)
{
int num1=num;
int num2=0;
while(num1!=0)
{
int rem=num1%10;
num1/=10;
num2=num2*10+rem;
}
if(num==num2)
{
c++;
letest=num;
}
num = num + 1;
}
printf ("%dth palindrome number is %d", rangenumber, letest);
return 0;
}
Enter the Nth value:15
15th palindrome number is 66
Program in C++
Here is the source code of the C++ Program to Find the nth Palindrome Number.
15th palindrome number is 66
Program in C++
Here is the source code of the C++ Program to Find the nth Palindrome Number.
Code:
#include <iostream>
using namespace std;
int
main ()
{
int i, rangenumber, num = 1, c = 0, letest = 0;
cout<<"Enter the Nth value:";
cin>>rangenumber;
while (c != rangenumber)
{
int num1=num;
int num2=0;
//reverse of number
while(num1!=0)
{
int rem=num1%10;
num1/=10;
num2=num2*10+rem;
}
if(num==num2)
{
c++;
letest=num;
}
num = num + 1;
}
cout<<rangenumber<<"th palindrome number is "<<letest;
return 0;
}
Input/Output:using namespace std;
int
main ()
{
int i, rangenumber, num = 1, c = 0, letest = 0;
cout<<"Enter the Nth value:";
cin>>rangenumber;
while (c != rangenumber)
{
int num1=num;
int num2=0;
//reverse of number
while(num1!=0)
{
int rem=num1%10;
num1/=10;
num2=num2*10+rem;
}
if(num==num2)
{
c++;
letest=num;
}
num = num + 1;
}
cout<<rangenumber<<"th palindrome number is "<<letest;
return 0;
}
Enter the Nth value:19
19th palindrome number is 101
Program in Java
19th palindrome number is 101
Program in Java
Here is the source code of the Java Program to Find the nth Palindrome Number.
Code:
import java.util.Scanner;
public class NthPalindromeNumber {
public static void main(String[] args) {
Scanner cs=new Scanner(System.in);
int rangenumber, num = 1, c = 0, letest = 0;
System.out.println("Enter Nth number:");
rangenumber=cs.nextInt();
while (c != rangenumber)
{
int num1=num;
int num2=0;
while(num1!=0)
{
int rem=num1%10;
num1/=10;
num2=num2*10+rem;
}
if(num==num2)
{
c++;
letest=num;
}
num = num + 1;
}
System.out.println(rangenumber+"th Palindrome Number is "+letest);
cs.close();
}
}
Input/Output:public class NthPalindromeNumber {
public static void main(String[] args) {
Scanner cs=new Scanner(System.in);
int rangenumber, num = 1, c = 0, letest = 0;
System.out.println("Enter Nth number:");
rangenumber=cs.nextInt();
while (c != rangenumber)
{
int num1=num;
int num2=0;
while(num1!=0)
{
int rem=num1%10;
num1/=10;
num2=num2*10+rem;
}
if(num==num2)
{
c++;
letest=num;
}
num = num + 1;
}
System.out.println(rangenumber+"th Palindrome Number is "+letest);
cs.close();
}
}
Enter Nth number:
23
23th Palindrome Number is 141
23
23th Palindrome Number is 141
Program in Python
Here is the source code of the Python Program to Find the nth Palindrome Number.
Code:
rangenumber=int(input("Enter a Nth Number:"))
c = 0
letest = 0
num = 1
while c != rangenumber:
num2=0
num1 = num
while num1 != 0:
rem = num1 % 10
num1 //= 10
num2 = num2 * 10 + rem
if num==num2:
c+=1
letest = num
num = num + 1
print(rangenumber,"th Palindrome Number is ",letest)
c = 0
letest = 0
num = 1
while c != rangenumber:
num2=0
num1 = num
while num1 != 0:
rem = num1 % 10
num1 //= 10
num2 = num2 * 10 + rem
if num==num2:
c+=1
letest = num
num = num + 1
print(rangenumber,"th Palindrome Number is ",letest)
Input/Output:
Enter a Nth Number:16
16 th Palindrome number is 77
16 th Palindrome number is 77
2 Comments
No need for iteration here, this can be done by checking the structure of palindromic numbers. Can be solved in nearly linear time like this (JS solution):
ReplyDeletelet findReverseNumber = n => {
if ((n-=10)<10) return n>0 ? n*11 : n+9;
let $ = new Leap(2);
while (n >= $.skipped) n -= $.skipped, $ = new Leap($.digits + 1);
if (n-- && !($.digits % 2)) return (1*10**($.digits/2-1)+n).getPalindrome();
return (1*10**(($.digits-1)/2-1)+Math.floor(n/10)).getPalindrome(n%10);
};
Number.prototype.getPalindrome = function(_='', half=''+this, middle=''+_){
return half + middle + [...half].reverse().join``;
};
class Leap {
constructor(d){
this.digits = d;
this.skipped = 9*10**~~((d-1)/2);
};
};
The code is so much inefficient. Let's say, I need to find the 999,999,999 th palindrome number. How long is this code going to need to generate it? 10 minutes? 30 minutes? You see the problem here.
ReplyDeleteUse the properties of a palindrome number, and you won't have to check all numbers one by one. That way, you can generate one palindrome number at each step. It'll be a lot faster.
Please do not Enter any spam link in the comment box