Java中的迭代斐波那契代码?
在Java中,我有以下方法来查找序列中的第n个斐波那契数:Java中的迭代斐波那契代码?,java,iteration,Java,Iteration,在Java中,我有以下方法来查找序列中的第n个斐波那契数: int fib (int n) { int fib = 0; int a = 1; for(int i=0; i<n; i++) { fib = fib + a; a = fib; } return fib; } 在斐波那契序列中,每一项都是前两项的总和。所以,您编写了一个递归算法 所以 现在您已经知道
int fib (int n) {
int fib = 0;
int a = 1;
for(int i=0; i<n; i++) {
fib = fib + a;
a = fib;
}
return fib;
}
在斐波那契序列中,每一项都是前两项的总和。所以,您编写了一个递归算法 所以 现在您已经知道斐波那契(1)==1和斐波那契(0)==0。因此,您可以随后计算其他值 现在, 从斐波那契数列0,1,1,2,3,5,8,13,21。。。。我们可以看到,对于第5个元素,斐波那契序列返回5 就像你的代码一样
int a = 0;
int fib = 1;
for(int i=0; i<5; i++) {
fib = fib + a;
a = fib;
}
return fib; //5
inta=0;
int-fib=1;
对于(int i=0;i fib==1;a=fib=>a==1}(第一次迭代)
i=1;fib=1;a=1所以:{fib=fib+a=>fib==2;a=fib=>a==2}(第二次迭代)
i=2;fib=2;a=2所以:{fib=fib+a=>fib==4;a=fib=>a==4}(第三次迭代)
在切换fib(n-1),fib(n-2)总数之前,使用临时变量跟踪fibbonacci堆栈以存储最新结果。注意:fibb(2)永远不会进入循环(没有人是完美的)
def fibb(n_):
如果n_u2<2:
返回1
其他的
fun1,fun2,i_u=[1,1,2]
而我:
tmp=fun1+fun2
fun2=fun1
fun1=tmp_
i+=1
返回fun1+fun2
试着在每个循环中打印fib
和a
的值,你就会明白它在做什么。这看起来像是一个家庭作业问题。你能更具体地说明你不明白的内容吗?斯科特先生,我真的不明白返回语句。这是在我们超过iGet的条件时实现的吗这看起来不像Java代码。这不是用Java写的,而是用Python.bruh写的。你不能只是复制答案然后再发布。
fibonacci(5) = fibonacci(4) + fibonacci(3)
fibonacci(3) = fibonacci(2) + fibonacci(1)
fibonacci(4) = fibonacci(3) + fibonacci(2)
fibonacci(2) = fibonacci(1) + fibonacci(0)
fibonacci(2) = 1+0 = 1
fibonacci(3) = 1+1 = 2
fibonacci(4) = 2+1 = 3
fibonacci(5) = 3+2 = 5
int a = 0;
int fib = 1;
for(int i=0; i<5; i++) {
fib = fib + a;
a = fib;
}
return fib; //5
def fibb(n_):
if n_ < 2:
return 1
else
fun1,fun2,i_= [1,1,2]
while i_ < n_:
tmp_= fun1 + fun2
fun2= fun1
fun1= tmp_
i_ += 1
return fun1+fun2