day16
---------------------------------------------------------------
实例024:斐波那契数列II
题目 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
分析:就是斐波那契数列的后一项除以前一项,于是写了两个函数
1 def fbs(num): 2 a = [0,1] 3 if num<=2: 4 return a 5 else: 6 for i in range(1,int(num-1)): 7 tmp = a[-1]+a[-2] 8 a.append(tmp) 9 return a 10 def fbs2(num): 11 num +=3 12 a = fbs(num) 13 b=[] 14 if num >3: 15 for i in range(3,int(num)): 16 tmp = a[i] / a[i-1] 17 b.append(tmp) 18 return b 19 print(fbs2(20)) 20 print(sum(fbs2(20)))
再看看答案:
1 a = 2.0 2 b = 1.0 3 s = 0 4 for n in range(1,21): 5 s += a / b 6 a,b = a + b,a 7 print (s)
感觉还是没有学的python的赋值精髓,自己把简单的东西复杂化了。。。