问题来了
"A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers."
我不确定为什么我的代码不起作用。我推断,如果我从最大的数开始并每次减少 X,那么我找到的第一个回文数就是它。但由于某种原因它没有打印。非常感谢任何帮助!
import java.lang.StringBuilder;
public class Euler4 {
public static void main(String[] args){
for (int x=999*999; x>=100*100; x--){
String num=Integer.toString(x);
StringBuilder num1 = new StringBuilder(num);
String num2 = num1.toString();
if (num2.equals(num1.reverse())==true)
System.out.println(num);
break;
}
}
}
最佳答案
你的循环只循环一次,因为你有 break;
。添加大括号以防止将来发生此类事情:
if (num2.equals(num1.reverse().toString())) {
System.out.println(num);
break;
}
还要注意,写 if(someBoolean == true)
是多余的,只需写if(someBoolean)
防止错误分配( =
而不是 ==
)。请..缩进您的代码!
说实话,当我查看你的代码时,我并没有注意到这一点,但我使用了调试器,并在不到 5 秒的时间内发现了问题。有一个调试器..使用它!
关于java - Project Euler 4 - 不会打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19676220/