while循环执行的次数比预期的多

时间:2018-07-29 14:51:11

标签: java while-loop

public class fibonacci
{
    public static void main(String[] args)
    {
        int a=0,b=1,c=2;
        while(a<4000000)
        {
            a=b;
            b=c;
            c=a+b;
            System.out.println(a);
        }
    }   
}

尝试打印小于400000的斐波那契数列,但同时也打印5702887。

3 个答案:

答案 0 :(得分:3)

重新安排打印和检查的范围,使它们都作用于相同的值

int a=1,b=1,c=2;
while(a<4000000)
{
    System.out.println(a);
    a=b;
    b=c;
    c=a+b;        
}

这将输出斐波那契序列,开始时带有两次“ 1”。
如果要“ 1、2、3 ...”,请使用

int a=1,b=2,c=3;

答案 1 :(得分:0)

斐波纳契数列开始于1.看this。我为您的代码提供了解决方案。 您在检查a=b之后设置了a<4000000。那么您需要检查b。

int a=0,b=1,c=2;
    while(b<4000000)
    {
        a=b;
        b=c;
        c=a+b;
        System.out.println(a);
    }

答案 2 :(得分:0)

您的代码很好,您所要做的就是在计算下一个数字之前放入打印语句因为3524578 <5702887