程序输出错误(逻辑错误)

时间:2016-02-22 14:12:08

标签: java

我正在Windows 8中的textpad(java)上编码。我编写了一个程序来检查给定的数字是否是回文。但是对于每个输入的选择(无论数字是多少),它总是显示它不是回文。请告诉我我的代码有什么问题,帮助我。

class reversenumber
{
    private int n=99;
    private int rem=0;
    private int rev=0,d;

    public void calc()
    {
        while(n>=0)
        {
            rem=n%10;
            rev=(rev*10)+rem;
            n=n/10;

            if(n==0)
            {
                break;
            }
        }
        if(rev==n)
        {
            System.out.println("The number is a palindrome");
        }
        else
        {
            System.out.println("The number is not a palindrome");
        }
    }

    public static void main(String args[])
    {
        reversenumber x=new reversenumber();
        x.calc();
    }
}

1 个答案:

答案 0 :(得分:1)

问题在于:

if(rev==n)
    { 
        System.out.println("The number is a palindrome");
    } 

因为n已经变为0,所以你比较它会反转n的初始值,因为它永远不会相等,因此输出错误。因此,您可以创建另一个变量并最初为其指定n的值。然后在里面,如果你可以比较转速与其他数字。希望这会有所帮助。

相关问题