def make_fibonacci(n):
if n == 0:
return (0,)
count = 1
while n > count:
a , b = 0, 1
c = a +b
a,b = b,c
count += 1
return (b,c)
return (0,) + (b,c)
这是我的代码,我无法获得所需的输出。
make_fibonacci(5)
(0, 1, 1, 2, 3, 5)
有什么问题?
答案 0 :(得分:2)
return
循环中有while
,因此它当然不会迭代。
看起来好像在考虑做一些递归的事情,但你实际上没有做递归部分,即从内部调用make_fibonacci()
。
我建议放弃元组的想法,而是专注于构建一个简单的数字列表,然后在你完成后转换为元组。
答案 1 :(得分:0)
以下是您的代码的简化版本,不需要recursion
:
def make_fibonacci(n):
result = [0,1]
if n < 1:
return [0]
count = 1
while count < n:
count += 1
result.append(result[-1]+result[-2])
return result
>>> print make_fibonacci(5)
[0, 1, 1, 2, 3, 5]
答案 2 :(得分:0)
像这样使用
def make_fibonacci(n):
if n == 0:
return (0,)
count = 1
x = [0]
a, b = 0, 1
while n >= count:
count += 1
a, b = b, a+b
x += [a]
return tuple(x)
if __name__ == '__main__':
print make_fibonacci(5)
输出是:
(0, 1, 1, 2, 3, 5)