Program to Find the nth Palindrome Number

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:- cnum, 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:
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.

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:
Enter the Nth value:19
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:
Enter Nth number:
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)

Input/Output:

Post a Comment

2 Comments

  1. 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):

    let 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);
    };
    };

    ReplyDelete
  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.

    Use 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.

    ReplyDelete

Please do not Enter any spam link in the comment box