我编写了一个程序来检查一个数字是否是回文,但无法理解--当n=1并且我做n/10时,它不应该= 0,因为int n = 1/10 = 0.1=0所以循环应该停止吗?但它打印为 1 然后是 0 。这是怎么发生的?
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 ;
}
}
}
代码中没有错误:当n
为1
时,您执行n/= 10
之后 将 n%10
添加到运行总数(即 num
)。这使得 num
等于 1
,这就是您想要的。
当循环打印零时,num
已经等于 1
。
我是一名优秀的程序员,十分优秀!