Ale*_*nue 1 java fibonacci while-loop
我正在尝试打印出低于四百万的Fibonacci序列的所有正数.
public static void main(String[] args) {
int n1 = 1;
int n2 = 2;
int n3 = 0;
while (n3 <= 4000000) {
n3 = n1 + n2;
if (n3 % 2 == 0) {
System.out.println(n3);
}
n1+=1;
n2+=1;
}
}
Run Code Online (Sandbox Code Playgroud)
你的逻辑不正确.
如果你是通过这个代码在调试器中的步骤,你会看到,n3
是永远连(你正在测试中n3 % 2 == 0
),这样的if
条件是不正确的.
现代处理器不需要很长时间才能达到400万(最多几十毫秒),因此程序似乎立即终止.