Java 欧拉项目。4最大回文乘积
回文数字的两种读取方式相同。由两个两位数的乘积构成的最大回文是9009=91×99 查找由两个3位数字的乘积构成的最大回文 这是我的代码,我发现答案是580085,但不是正确答案: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;
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;
}