Java 我不知道这为什么不起作用
我在Java上为Euler制作了这个,它只是不断地反复打印0。我不知道我做错了什么,请帮帮我好吗Java 我不知道这为什么不起作用,java,Java,我在Java上为Euler制作了这个,它只是不断地反复打印0。我不知道我做错了什么,请帮帮我好吗 class Euler { public static void main (String[]args) { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; int palindrome = 0; boolean run = true;
class Euler
{
public static void main (String[]args)
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
int f = 0;
int palindrome = 0;
boolean run = true;
while (run == true) {
for (int f4 = 999; f4 >= 100; f4--) {
for (int f5 = f4; f5 >= 100; f5--) {
palindrome = f4 * f5;
f = (palindrome % 10);
e = (palindrome % 100 - f);
d = (palindrome % 1000 - e);
c = (palindrome % 10000 - d);
b = (palindrome % 100000 - c);
a = (palindrome % 1000000 - b);
if (a == 0) {
if ((b == f) && (c == e)) {
run = false;
}
} else {
if ((a == f) && (b == e) && (c == d)) {
run = false;
}
}
}
}
int[] nums = new int[1];
nums[0] = palindrome;
{
System.out.println(Arrays.toString(nums));
}
}
}
}
它应该算出由两个三位数的乘积构成的最大回文。你的循环永远不会被输入。当你说
for (int f4 = 999; f4 == 100; f4--) {
999不是==100,因此跳过循环。我想你想要
for (int f4 = 999; f4 >= 100; f4--) {
下一个循环也有同样的问题
for (int f5 = f4; f5 >= 100; f5--) { // <-- not == 100
循环不是只输入了一次吗?我是个白痴,我一直都有这个问题,但我仍然不记得。现在它只给了我10000不,这是一个for循环。输入Do循环,然后对其求值,因此它们将运行一次或多次。请使用调试器或放入printf语句以查看它正在执行的操作。