我试图写一个非常简单的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。
答案 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;。
最好尝试进行这些更改。
替换变量&#34; i&#34;用&#34; fib2&#34;在forloop。
删除&#34; currentfib&#34;变量赋值。 forloop中的fib2将是我们的&#34; currentfib&#34;