【发布时间】:2019-08-04 15:50:05
【问题描述】:
我正在尝试编写一个斐波那契数列,它可以将用户的输入作为兔子世代增长的乘数,即每对成熟兔子产生 4 对后代。
我尝试将输入的整数形式存储在一个新变量中,并在询问原始输入时的位置移动:
def fibonacci(x):
if x == 1:
rabbit_pairs = 1
return rabbit_pairs
elif x == 2:
rabbit_pairs = 1
return rabbit_pairs
elif x > 2:
y = int(input("How many offspring per pair? "))
rabbit_pairs = fibonacci(x-1) + (y * fibonacci(x-2))
return rabbit_pairs
当我运行我的代码时,如果 x > 2,我的输入问题被问到,但它一直被问到,而不是返回相应数量的兔子。如果 x == 5,则命令提示输入每对兔子的数量,然后继续询问每对兔子的数量。
【问题讨论】:
-
只要尝试在你的脑海中执行给定的代码,你就会知道确切的问题。您在函数中获得输入并一次又一次地调用该函数。
-
y = int(input("每对有多少后代?")) 每次函数调用都会执行此行。您需要将其替换到正确的位置
标签: python iteration fibonacci raw-input