LenleDaytoy

剑指offer-10.斐波那契数列

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39

解题思路:斐波那契数列第n项的值为前两项的和,程序在实现的时候可以采用循环的方式,并且将已经的计算出的中间项保存起来避免重复运算。

具体来说用两个变量 fb_1,fb_2最初保存第一和第二项的值,结果变量 fb_n 保存这两个变量之和,每增加一次循环,将 fb_1的值更新为fb_2,fb_2值更新为fb_n ,而fb_n依然为 fb_1,fb_2之和,直到循环次数达到终止条件(终止条件与输入的n有关),返回fb_n的值

class Solution:
        def Fibonacci(self, n):
        # write code here
            if n==0:
                return 0
            if n==1:
                return 1
        # while n>=0 and  n<=39:
            if n>39:
                return None
            fb_1=0
            fb_2=1
            for i in range(2,n+1):
                fb_n=fb_1+fb_2
                fb_1=fb_2
                fb_2=fb_n

            return fb_n
            

  

posted on 2020-04-24 21:24  LenleDaytoy  阅读(118)  评论(0编辑  收藏  举报

导航