斐波纳契计划不起作用?

时间:2014-12-27 17:58:30

标签: java fibonacci

我试图写一个非常简单的Fibonacci序列程序。

import acm.program.*;
public class Fibonacci extends Program{
    public void run(){
        int i; 
        int fib1=1; 
        int fib2=0;
        int currentFib=0;
        int count = readInt("Until which Fibonacci number do you want to print? ");
        if(count>=0) println(0);
        if(count>=1) println(1);
        if (count>=2) {
            for (i=2; i<count; i++){
                currentFib = fib1+fib2;
                println(currentFib);
                fib1=fib2;
                fib2=currentFib;
            }
        }
    }
}

但是,由于某些原因,当我在cmd中写一个数字时,唯一的结果是0和1.有什么我做错了吗?我不能说,因为我几天前开始学习java。

2 个答案:

答案 0 :(得分:3)

更改

    int fib1=1; 
    int fib2=0;

    int fib1=0; 
    int fib2=1;

因为fib1应初始化为fib(0),而fib2应初始化为fib(1)。

答案 1 :(得分:0)

欢迎来到java世界: - )

我在你的代码中看到,值0和1重复分配给fib1和fib2。

此外,你在哪里使用了你的临时变量&#34;我&#34;。

最好尝试进行这些更改。

  1. 替换变量&#34; i&#34;用&#34; fib2&#34;在forloop。

  2. 删除&#34; currentfib&#34;变量赋值。 forloop中的fib2将是我们的&#34; currentfib&#34;

  3. 打印添加&#34; fib1 + fib2&#34;直接
  4. 删除&#34; fib2&#34;的重新分配同样。