I have made a program to check if a number is palindrome but unable to understand --When n=1 and I do n/10 should it not be = 0 as int n = 1/10 = 0.1=0 so loop should stop ? But it prints as 1 and then 0 . How does that happen ?
import java.util.Scanner;
public class Pallinnumber
{
public static void main(String[] args)
{
int y =reversenum(1234);
System.out.println(y);
Pallinnumber.Pallinnum(12);
Scanner s = new Scanner(System.in);
System.out.println("Enter the number");
int x = s.nextInt();
int z= reversenum(x);
System.out.println(z);
}
public static int reversenum(int n)
{
int num=0;
while(n>0)
{
num = num*10;
num=num+n%10;
n=n/10;
System.out.println(n);
}
return num;
}
public static boolean Pallinnum(int n)
{
if(n==reversenum(n)){
System.out.println("It is a Pallindrome number");
return true;
}
else
{
System.out.println("It is not an Pallindrome number");
return false ;
}
}
}
There is no error in the code: when n
is 1
, you do n /= 10
after adding n%10
to the running total (i.e. num
). This makes num
equal 1
, which is what you want.
By the time your loop prints zero, num
is already equal to 1
.