Python:每日一题87
- 2017-11-27 14:43:00
- 六月
- 来源:
- http://bbs.fishc.com/thread-95346-1-1.html
- 转贴 620
我们都知道斐波那契数列,它的下一个数为前两个之和,前12个如下:
1 1 2 3 5 8 13 21 34 55 89 144
下面我们稍微改变一下规则,如果算出的下一个数是偶数,则取它被2整除的值,前12个如下:
1 2 3 5 4 9 13 11 12 23 35 29
为了使数列不都为1,从1和2开始。
写出这个函数。
- def newfib(n)
- ......
n的取值从1开始。
我的解法:
- def newfib(n):
- n1, n2 = 1, 2
- for i in range(1, n):
- n1, n2 = n2, (n1 + n2) // 2 if (n1 + n2) % 2 == 0 else n1+n2
- return n1
发表评论