初学python100例 兔子生兔子 多种不同解法 少儿编程案例讲解

举报
小兔子编程 发表于 2021/11/13 00:15:33 2021/11/13
【摘要】 题目 古典问题:有一对兔子,从出生后第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


  
  1. def rabbit(n):
  2. if n==1 or n==2:
  3. return 1
  4. else:
  5. return rabbit(n-1)+rabbit(n-2)
  6. print("第10个月兔子数量:",rabbit(10))

运行结果

 

解法2 列表1

分析和解法1类似,只是用列表实现


  
  1. def rabbit(n):
  2. count = [1,0,0] #将兔子成长期分为三个月
  3. for i in range(1,n): #每个月更新一次不同成长期的兔子对数
  4. count[2] = count[2] + count[1]
  5. count[1] = count[0]
  6. count[0] = count[2]
  7. return count[0]+count[1]+count[2] #返回兔子对数总数
  8. n = int(input(&

文章来源: scratch.blog.csdn.net,作者:CSDN专家-小兔子编程,版权归原作者所有,如需转载,请联系作者。

原文链接:scratch.blog.csdn.net/article/details/116399943

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。