编程06
题目:编写斐波那契数列
原理:f(0)=1,f(1)=1,当n>=2时,f(n)=f(n-1)+f(n-2).
代码:
def fib(n):
if n==1 or n==2:
return 1
for i in range(n-1):
return fib(n-1)+fib(n-2)
print(fib(10))#编写出n=10的斐波那契数列
运行结果:
55
另一种写法:
def fib(n):
a,b=1,1
for i in range(n-1)
a,b=b,a+b
return a
print(fib(10))
运行结果:
55
第二种算法,最开始定义a,b将其初始化为1,在for循环中,a被赋值为b,b被赋值为a+b,这就相当于斐波那契数列中的n>2的时候开始的递归式。通过要打印第几个数,然后将他们通过for循环,倒推得到一个a的值,也就是最终得到的a值为斐波那契数列序号所对应的那个数。