Hello Folks,
As part of Frequently Asked Java Programs In Interviews For Freshers And Experienced, in this post we will see a java program to check if a given number is palindrome.
Palindrome program is a frequently asked programming interview question to both freshers or experienced in interviews. We will going to learn that in this post.
Let’s start with basics first. We must be aware what is Palindrome.
What is palindrome?
We read a word or group of words from left to right. If we can read them from right to left same as we read left to right , is called a palindrome.
Examples: “Refer” , “level” , “Madam” , “Nurses run” , 1991 are palindrome.
A number can also be a palindrome number as shown above in example. In this post, we will be learn about a palindrome number. In next post, we will learn about string palindrome.
A palindromic number or numeral palindrome is a number that remains the same when its digits are reversed.
For example: 16461.
Logic to find out a numeral palindrome:
-
- We need to extract last digit from input number and keep it at first position for a new number.
- Extract the second last digit and put in the next position of new number.
- We can achieve that using multiple ways like reverse traversing or charAt methods etc. Here we will see include some number concepts.
- We can extract last digit of a number(remainder) if we divide number by 10.
For examples:
a. 13/10 : Remainder= 3 which is last digit in number 13.
b. 100/10 : Remainder= 0 which is last digit in number 10.
5. New number which is actually reverse number, will be formed by formula “(reverseNumber*10) + remainder”.
6. Now divide the original number by 10 to remove last digit of it.
7. Repeat above steps till original number is less than zero.
Java Program:
package NumberSeries; import java.util.Scanner; public class PalindromeNumber { public static void main(String[] args) { // Taking input from user Scanner sc = new Scanner(System.in); System.out.println("Please input the number to find if it is palindrome or not:"); int inputByUser = sc.nextInt(); System.out.println("Input Number to be checked for palindrome: " + inputByUser); // Closing input stream sc.close(); // Copy input number to a temporary variable to keep original value intact int temp = inputByUser; int revNumber = 0; // checking if number is negative if (inputByUser < 0) { System.out.println("Negative number.Enter positive number."); System.exit(1); } // checking if number is single digit only else if (inputByUser >= 0 && inputByUser <= 9) { System.out.println(inputByUser + " is palindrome as it is single digit number."); System.exit(1); } else { while (temp > 0) { // extracting last digit of number int rem = temp % 10; // forming number revNumber = revNumber * 10 + rem; // removing last digit from number temp = temp / 10; } System.out.println("Input By User:" + inputByUser); System.out.println("Reverse number:" + revNumber); // Comparing if input number and reversed number are same if (inputByUser == revNumber) { System.out.println(inputByUser + " is a Palindrome Number"); } else { System.out.println(inputByUser + " is not a Palindrome Number"); } } } }
Output:
[java]Please give the input number to check palindrome:
-10
Number to be checked for palindrome: -10
Negative number.Enter positive number.
=========================================================
Please give the input number to check palindrome:
5
Number to be checked for palindrome: 5
5 is palindrome as it is single digit number.
=========================================================
Please give the input number to check palindrome:
16461
Number to be checked for palindrome: 16461
Input By User:16461
Reverse number:16461
16461 is a Palindrome Number
=========================================================
Please give the input number to check palindrome:
87342
Number to be checked for palindrome: 87342
Input By User:87342
Reverse number:24378
87342 is not a Palindrome Number[/java]
You can run above program for multiple inputs and if it fails for any condition, let me know.
#HappyCoding
you can add the this program also. WAP to find second largest number from an array.
Sure.
Thank You so much.
i think we could have just put the check for number=0 for single digit number as rest can be taken care by the loop even if the number is >=1 and <=9