所以我正在研究Project Euler问题#4(https://projecteuler.net/problem=4)并编写了这段代码:
public class Main {
public static void main (String[] args) {
for (int i = 100000; i<999*999; i++) {
String st=i+"";
char char1 = st.charAt(0);
char char2 = st.charAt(1);
char char3 = st.charAt(2);
char char4 = st.charAt(3);
char char5 = st.charAt(4);
char char6 = st.charAt(5);
if (char1 == char5 && char2 == char5 && char3 == char4) {
System.out.println(i);
}
}
}
}
但每当我运行它时,第一个数字是110010,这不是回文数,然后打印出该数字+1,直到它达到997799,奇怪的是它距离它应该到达的位置是1个因为999 * 999 = 998001.所以我的问题是为什么这段代码从110010开始,从那里开始计数并打印出来,然后为什么它以997799结束?我只是不明白你是如何从我的代码中打印出来的。
感谢。
答案 0 :(得分:4)
if
声明中有一个拼写错误:
if (char1 == char6 && ...