Java 欧拉项目。4最大回文乘积

Java 欧拉项目。4最大回文乘积,java,Java,回文数字的两种读取方式相同。由两个两位数的乘积构成的最大回文是9009=91×99 查找由两个3位数字的乘积构成的最大回文 这是我的代码,我发现答案是580085,但不是正确答案: public class asdas { public static void main(String[] args) { int a=100,b=100,answer=0; while(a<=999) { b=100;

回文数字的两种读取方式相同。由两个两位数的乘积构成的最大回文是9009=91×99

查找由两个3位数字的乘积构成的最大回文

这是我的代码,我发现答案是580085,但不是正确答案:

    public class asdas {

    public static void main(String[] args) {
        int a=100,b=100,answer=0;
        while(a<=999)
        {
            b=100;
            while(b<=999)
            {
                int product=a*b;
                int reverse=0;

                while(product>0)
                {
                    int lastDigit=product%10;
                    reverse=(reverse*10)+lastDigit;
                    product=product/10;
                }
                product=a*b;
                if(product==reverse)
                {
                    answer=product;
                }
                b++;
            }
            a++;
        }
        System.out.println(answer); 
    }
}
公共类asdas{
公共静态void main(字符串[]args){
INTA=100,b=100,答案=0;
而(a问题在于:

if(product==reverse)
{
    answer=product;
}
你假设如果你找到一个回文,它是最大的。但事实并非如此

例如,101*100是在100*102之后计算的,尽管后者更大。事实上,在计算了998*999(997002)之后,您立即计算了999*100(99900),这几乎是更小的10倍

您应该添加另一项检查,以确保新产品更大:

if(product==reverse && product>answer) {
    answer = product;
}