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开始。
写出这个函数。
  1. def newfib(n)
  2.     ......
复制代码

n的取值从1开始。

我的解法:


  1. def newfib(n):
  2.     n1, n2 = 1, 2
  3.     for i in range(1, n):
  4.         n1, n2 = n2, (n1 + n2) // 2 if (n1 + n2) % 2 == 0 else n1+n2
  5.     return n1
复制代码
发表评论
评论通过审核后显示。