第一个月: 1 小兔子 =1
第二个月: 1 小兔子 =1
第三个月: 1 对大兔子 1 对小兔子(本月生) = 1 + 1 = 2
第四个月: 1 对大兔子 1 对小兔子(本月生) 1 对小兔子(上月生)= 1 + 1 + 1 = 3
第五个月: 2 对大兔子 2 对小兔子(本月生) 1 对小兔子(上月生)= 2 + 2 + 1 = 5
第六个月: 3 对大兔子 3 对小兔子(本月生) 2 对小兔子(上月生)= 3 + 3 + 2 = 8
第七个月: 5 对大兔子 5 对小兔子(本月生) 3 对小兔子(上月生)= 5 + 5 + 3 =13
………………以此类推git
n1=1 n2=1 num = input("请输入计算的斐波那契数列个数:") if num.isdigit():#isdigit()自动判断小于零 num=int(num) if num == 0: print("输入内容非法") if num==1: print(n2) if num==2: print(n2,n2) if num>=3: for i in range(1,num+1): if i==1: print(1,end=',') elif i==2: print(1,end=',') else: # result =n1 +n2 #计算当前月份的兔子数 # print(result,end=',') # #交换数据 # n1 = n2 # n2 = result #两种交换数值写法 n1, n2 = n2, n1 + n2 print(n2, end=',') # 灵活的语法结构 pass else: print("输入内容非法")
def recur_fibo(n): """递归函数 输出斐波那契数列""" if n <= 1: return n else: #返回第n个元素的前两个数相加的值 return (recur_fibo(n - 1) + recur_fibo(n - 2)) # 获取用户输入 nterms = int(input("您要输出几项? ")) # 检查输入的数字是否正确 if nterms <= 0: print("输入正数") else: print("斐波那契数列:") for i in range(nterms): print(recur_fibo(i),end=' ')
while True: n=int(input("你要输入几项?:")) if n<= 0: print("输入正数") else: fbnq=lambda n: fbnq(n-1)+fbnq(n-2) if n>2 else 1 print("第",n,"项的斐波那契值为:",fbnq(n))
斐波那契数列就是从第三个元素开始,第n个元素的值就等于(n-1)+(n-2)
的值。找规律也是写算法代码的必修课。web
若有纰漏,请多指教面试