剑指offer Q7
题目:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39
斐波那契数列(Fibonacci sequence),又称黄金分割数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
这个数列从第3项开始,每一项都等于前两项之和。
用直接递归的方法比较耗时间
推荐题解里叫我皮卡丘提供的方法 思路很清晰 :
class Solution:
def Fibonacci(self, n):
# write code here
x=0;y=1
if n ==0:
return 0
elif n <=2:
return 1
for i in xrange(2,n+1):
x,y = y,x+y
return y
注意:
for i in range(0,5):print i #0 1 2 3 4
for i in xrange(0,5):print i #0 1 2 3 4