一道数学题
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子 ,假如兔子都不死,问每个月的兔子总数为多少?大佬们,这用Python该怎么写 斐波那契数列?参考下C的递归就能写出来了吧 轻描淡写9714 发表于 2020-3-3 19:45
斐波那契数列?参考下C的递归就能写出来了吧
我是初学者{:1_907:} 泪灬忆 发表于 2020-3-3 20:02
我是初学者
不会Python。无可奈何 以下是仓促写的,没优化(比如省略一些),就是说一下我的看法,如果错了,我很乐意你指正。
def 生兔子(月份):
\t兔子数列表=#各月的兔子数。
\t月序=0
\twhile 月序 <月份:
\t\t变动兔子数列表=[兔子数列表,兔子数列表,兔子数列表]
\t\t兔子数列表=[变动兔子数列表,变动兔子数列表,变动兔子数列表+兔子数列表]
\t兔子总数=兔子数列表+兔子数列表+兔子数列表
\tprint('兔子总数为:%d'&(兔子总数)) 本帖最后由 六道佩奇 于 2020-3-3 21:15 编辑
此处计算得到的兔子数量单位为:“对”
def num_rabbit(n):
if n == 1:
return 1
elif n == 2:
return 1
elif n >= 3:
return num_rabbit(n-1) + num_rabbit(n-2)
if __name__ == '__main__':
n = int(input("please input month:"))
print(num_rabbit(n)) 本帖最后由 sjtuzjt 于 2020-3-3 21:37 编辑
哦,每个月都生一个,还以为隔一个月生一个。
def num_rabbit(n):
a,b,c=1,1,2
for _ in range (n):
yield a
c=a+b
a,b=b,c
if __name__ == '__main__':
while True:
n = int(input("please input month:"))
print(list(num_rabbit(n)))
使用生成器,打印每个月的数量。 PLDancer 发表于 2020-3-3 20:53
以下是仓促写的,没优化(比如省略一些),就是说一下我的看法,如果错了,我很乐意你指正。
def 生兔子( ...
感谢大佬 sjtuzjt 发表于 2020-3-3 21:14
哦,每个月都生一个,还以为隔一个月生一个。
def num_rabbit(n):
a,b,c=1,1,2
感谢大佬,虽然有点看不懂,但我会继续努力的 六道佩奇 发表于 2020-3-3 20:58
此处计算得到的兔子数量单位为:“对”
def num_rabbit(n):
if n == 1:
感谢大佬的代码
页:
[1]
2