public class Fibannoci {
static int fibo(int fir,int sec){
int res=0;
int i=0;
while(i<10){
res=fir+sec;
i++;
fibo(sec,res);
}
return res;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(fibo(1,1));
}
}
这是我的斐波那契计划。我正在尝试打印出第10位的数字。我不想在网上看到别人的代码。我想尝试自己并改进这些代码,以便获得理解。请告诉我如何编辑这个,以便获得前10个数字的fibo系列
答案 0 :(得分:0)
以下是一些需要解决的问题:
您的print语句只有一个值。这意味着您的fibo
方法需要返回一个数字列表,而不是一个int
。尝试返回List<Integer>
您正在递归地呼叫fibo
,但对呼叫结果一无所知。
如果要返回固定数量的元素,则没有太多理由以递归方式调用它。在这种情况下,迭代可能更简单。
习惯使用更好的变量名。使用现代IDE,没有理由使用像“sec”这样的缩写词,这些缩写词含糊不清,难以让读者立即理解。
答案 1 :(得分:0)
对于你的程序,你不需要第一个或第二个参数,你只需要一个变量n
来让你想要重复Fibonacci序列的次数,那么你应该只是递归调用方法,最终案例为if (n==0) return 0;
和if (n==1) return 1;
代码如下,如果您想查看一下。希望这有帮助!
public int fibonacci(int n) {
if(n == 0)
return 0;
else if(n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}