python 迭代和递归
def fib(n):a=1
b=1
c=1
while n>2:
c=a+b
a=b
b=c
n -= 1
return c
fib(12)
144
请教大神,那个这里为啥是b=c呀,不是应该a=b,c=a+b吗 您好,关于这个问题,是因为在计算斐波那契数列时,需要用到前两个数的和来计算出当前的数。因此,在每次循环时,需要更新前两个数的值,而这个过程可以通过交换变量的值来实现。
具体来说,在代码中,a表示当前数列的第一个数,b表示当前数列的第二个数,而c则表示当前要计算的数。在每次循环中,需要将a和b的值更新为前两个数,即将b的值赋给a,将c的值赋给b。这样,在下一次循环中,a和b就分别表示了前两个数,可以用来计算出下一个数。
因此,在代码中,b=c的操作就是将当前要计算的数赋值给b,以便在下一次循环中使用。而c=a+b的操作则是计算出下一个数的值。
页:
[1]