方法一:常规解法
def demo(month): # 定义变量a,b分别表示一月和二月的数目 a = 0 # a为第一个数值 b = 1 # b为第二个数值 # 定义一个计数器 i = 0 while i < month: # 打印每次的数值 print(a) a, b = b, a + b i += 1 nume = demo(3)
方法二:函数的递归
def demo(nume): # 当nume==1时,前两个数值是固定的0,1 if nume == 1: return 0 elif nume == 2: return 1 else: # 利用函数的递归,后一个等于前两个之和 return demo(nume - 1) + demo(nume - 2) # 如果是第五个数 de=demo(3) # 输出 print(de)
方法三:利用迭代器,其实和第一种思路相同
class Rabbit(object): def __init__(self, month): self.month = month self.new_month = 0 self.a = 0 self.b = 1 def __iter__(self): return self def __next__(self): if self.new_month < self.month: rea=self.a self.a,self.b=self.b,self.a+self.b self.new_month+=1 return rea else: raise StopIteration def main(): rabbit = Rabbit(3) for nume in rabbit: print(nume) if __name__ == '__main__': main()