为什么这个程序为回文提供了错误的输出?

时间:2015-10-28 15:01:07

标签: java

我正在制作由两个3位数字产品制成的最大回文程序。 但程序正在给出999 * 999 = 998001的产品 任何人都能说出这段代码中的错误吗?

计划 -

public class abc {
    public static void main(String[] args) 
    {
        int p=0,temp=0;

        for(int i=100;i<=999;i++)
        {
            for(int j=100;j<=999;j++)
            {
                p=i*j;
                StringBuilder sb=new StringBuilder(Integer.toString(p));

                sb.reverse();
                if((sb.toString()).equals(Integer.toString(p))  && p>temp)
                {
                    temp=p;
                }
            }
        }       
        System.out.println(temp);
    }
}

1 个答案:

答案 0 :(得分:0)

您还有一个;

if((sb.toString()).equals(Integer.toString(p))  && p>temp);
                                                          ^

结束if语句,因此始终执行以下temp=p;块。

删除它,你会得到

906609
相关问题