Write A program in java to input a number & check whether the given no. is a Pallindrome no. or not. If it is not a Pallindrome than print the nearest Pallindrome.
Home
/
Computer Science
/
Write A program in java to input a number & check whether the given no. is a Pallindrome no. or not. If it
Verified answer
Required Answer:-
Question:
Solution:
Here is the program.
import java.util.*;
public class Palindrome {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("Enter the number: ");
int n=sc.nextInt();
if(isPalindrome(n))
System.out.println("Number is Palindrome.");
else {
System.out.println("Number is not Palindrome.");
System.out.println("Nearest Palindrome is: "+nearestPalindrome(n));
}
sc.close();
}
static boolean isPalindrome(int n) {
int m=n, s=0;
while(m!=0) {
s=s*10+m%10;
m/=10;
}
return (s==n);
}
static int nearestPalindrome(int n) {
int higherRange=0, lowerRange=0;
for(int i=n+1;;i++) {
if(isPalindrome(i)) {
higherRange=i;
break;
}
}
for(int i=n-1;;i--) {
if(isPalindrome(i)) {
lowerRange=i;
break;
}
}
int d1=higherRange-n, d2=n-lowerRange;
if(d1<d2)
return higherRange;
return lowerRange;
}
}
Explanation:
Output is attached (5 pics).
Program:
import java.util.Scanner;
public class NearestPalindrome {
static boolean isPalindrome(int number) {
return new StringBuilder(number + "").reverse( ).toString( ).equals(number + "");
}
public static void main(String[ ] args) {
System.out.print("Enter a number - ");
int number = new Scanner(System.in).nextInt( );
if (isPalindrome(number)) {
System.out.println("Palindrome number");
} else {
int forward, backward;
// Checking palindromes succeeding the number.
for (forward = number + 1; !isPalindrome(forward); ++forward) ;
// Checking palindromes preceding the number.
for (backward = number - 1; !isPalindrome(backward); --backward) ;
// Finding the most closest number among the preceding and succeeding.
System.out.print("Nearest Palindrome - ");
if (Math.abs(number - forward) < Math.abs(number - backward)) {
System.out.println(forward);
} else System.out.println(backward);
}
}
}
Algorithm: