谁能告诉我这段代码出了什么问题?

时间:2019-07-10 08:14:09

标签: java

这是代码段。我在这里找不到任何错误...任何人都可以帮忙吗?

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");

2 个答案:

答案 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");
    }