当前位置: 首页 > news >正文

Python3 古典问题: 有一对兔子,从出生后第3个月

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

兔子的规律为数列1,1,2,3,5,8,13,21...可以发现当前的数=上个数+上上个数

'''------------------------------------------------------
【程序设计】
---------------------------------------------------------

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生
      一对兔子,小兔子长到第三个月后每个月又生一对兔子,
      假如兔子都不死,问每个月的兔子总数为多少?

说明:rabbit()函数的功能是根据输入的月数返回兔子对数

---------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的
      任何内容,仅在函数的注释标志之间填入所编写的若干语句。
------------------------------------------------------'''


def rabbit(num):
    # **********Program**********
    a=0
    b=1
    for i in range(num-1):
        a,b=b,a+b
    return b 
    # **********  End  **********


def main():
    print("【请连续三次计算某个月的兔子总数:】")
    for i in range(3):
        print("【第%d次:】" % (i+1))
        n = int(input("【查看第几个月的兔子对数:】"))
        rabbit_sum = rabbit(n)
        print("【第%d个月的兔子对数为】%d" % (n, rabbit_sum))


if __name__ == '__main__':
    main()

代码中现在的数b=上个数b+上上个数a。循环中在计算b的值的同时(不是先后顺序,而是同时进行的)将上个数b赋值给上上个数a。这样做是为了能正确计算出下一次循环中b的值。

如果从自然语言中理解,而不是用程序的思维:可以这样理解a,b=b,a+b: 将第1个数设为a,接着的一个数设为b,那么第3个数就是a+b,将第3个数设为b,将第2个数设为a(之前它是b),那么第4个数就是a+b,以此类推下去。


参考:
用python写#古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, # 小兔子长到第三个月后每个月又生一对兔子, # 假如兔子都不死,问每个月的兔子总数为多少? - geloushangdemao的博客 - CSDN博客

相关文章:

  • Python3 判断字符串是否是回文 用列表实现的方法
  • php和mysql web开发(英文第5版) PDF+完整源码
  • 将行列式 λ-1 2 0 2 λ-2 2 0 2 λ-3 化成 (λ+1)(λ-2)...
  • Ubuntu18.04 提示错误 no valid group apache
  • Python3 猴子第一天摘下若干个桃子,当即吃了一半..
  • Python3 求 3!+6!+9!+12!+15+18!+21! 阶乘之和
  • Python3 判断一个三位数是否为水仙花数 完美解决
  • Vscode编辑器中 Python TAB缩进设置4个空格的方法
  • Python3 getLastDay(y,m) 计算y年m月共有多少天
  • Python3 将分钟数转成小时h和分钟m表示 时间转换
  • Python3 打印菱形 使用abs()的方法 最少的代码搞定
  • idea mac xml注释快捷键
  • spring教程
  • ModuleNotFoundError: No module named ‘kamene‘
  • 解决Ubuntu安装VMware后 无法ping通虚拟机的Win7
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 2017 前端面试准备 - 收藏集 - 掘金
  • CentOS7 安装JDK
  • cookie和session
  • iOS 颜色设置看我就够了
  • Java 网络编程(2):UDP 的使用
  • MySQL几个简单SQL的优化
  • Redis的resp协议
  • windows下如何用phpstorm同步测试服务器
  • 基于HAProxy的高性能缓存服务器nuster
  • 我与Jetbrains的这些年
  • 项目管理碎碎念系列之一:干系人管理
  • Java数据解析之JSON
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • mysql面试题分组并合并列
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 阿里云重庆大学大数据训练营落地分享
  • ​queue --- 一个同步的队列类​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #微信小程序:微信小程序常见的配置传值
  • (3)STL算法之搜索
  • (a /b)*c的值
  • (独孤九剑)--文件系统
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (推荐)叮当——中文语音对话机器人
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)kafka实战——kafka源码编译启动
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ../depcomp: line 571: exec: g++: not found
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .bat文件调用java类的main方法
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选