初学python100例 兔子生兔子 多种不同解法 少儿编程案例讲解
【摘要】
题目
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
解法1 递归方法
程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21.... 有点像斐波那契数列,只是开始从1
def rabbit(n): if n==1 o...
题目
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
解法1 递归方法
程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21.... 有点像斐波那契数列,只是开始从1
-
def rabbit(n):
-
if n==1 or n==2:
-
return 1
-
else:
-
return rabbit(n-1)+rabbit(n-2)
-
print("第10个月兔子数量:",rabbit(10))
运行结果
解法2 列表1
分析和解法1类似,只是用列表实现
-
def rabbit(n):
-
count = [1,0,0] #将兔子成长期分为三个月
-
for i in range(1,n): #每个月更新一次不同成长期的兔子对数
-
count[2] = count[2] + count[1]
-
count[1] = count[0]
-
count[0] = count[2]
-
return count[0]+count[1]+count[2] #返回兔子对数总数
-
-
n = int(input(&
文章来源: scratch.blog.csdn.net,作者:CSDN专家-小兔子编程,版权归原作者所有,如需转载,请联系作者。
原文链接:scratch.blog.csdn.net/article/details/116399943
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)