Java中的迭代斐波那契代码?

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; } 在斐波那契序列中,每一项都是前两项的总和。所以,您编写了一个递归算法 所以 现在您已经知道

在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;
}

               
          

在斐波那契序列中,每一项都是前两项的总和。所以,您编写了一个递归算法

所以

现在您已经知道斐波那契(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