这是代码段。我在这里找不到任何错误...任何人都可以帮忙吗?
while(num != 0) {
rev = rev * 10;
rev = rev + num % 10;
num = num / 10;
}
if (num == rev)
System.out.println("The number is Palindrome");
else
System.out.println("The number is not Palindrome");
答案 0 :(得分:0)
此代码的问题在于,在反转之前,您没有存储num
变量的值。随着while
开始,num
值开始改变。您应该这样做:
int temp = num; // storing the original value
int rev = 0; // initial value of rev
// --------
// while loop logic here
// --------
if(temp == rev) // change your condition here
// and you're good to go
答案 1 :(得分:0)
首先,您需要初始化rev
的值,因为它是局部变量。然后,您需要将num
的值存储在一个临时值中,以便将其与您的rev
进行比较。
这是一段包含您的代码的方法:
public void isPalindrome(int num) {
int rev = 0;
int temp = num;
while(num!=0)
{
rev=rev*10;
rev= rev+num%10;
num=num/10;
}
if(temp==rev)
System.out.println("The number is Palindrome");
else
System.out.println("The number is not Palindrome");
}