• python基础练习题(有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?)


    day6

    ---------------------------------------------------------------

    实例011:养兔子

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

     有点复杂,先分析下,写出来几种情况,把每个兔子的状态标注下,慢慢的发现了规律,成熟的兔子和小兔子一样多,中兔子与上一个的小兔子一样多,大兔子同理,而成熟的兔子等于上月的成熟兔+大兔子,再调整下顺序输出就可以了,哈哈哈

     1 import copy
     2               
     3 # 3个月  1成熟  0大  0中  1小
     4 # 4个月  1成熟  0大  1中  1小
     5 # 5个月  1成熟  1大  1中  1小
     6 # 6个月  2成熟  1大  1中  2小
     7 # 7个月  3成熟  1大  2中  3小
     8 # 8个月  4成熟  2大  3中  4小
     9 # 9个月  6成熟  3大  4中  6小
    10 list = [1,0,0,0]
    11 list1 = [0,0,0,0]
    12 sum1 = 0
    13 x = int(input("请输入月份:"))
    14 for i in range(x+1):
    15     if i <3:
    16         sum1 = 1
    17     else:
    18         list1[2] = list[3]
    19         list1[1] = list[2]
    20         list1[0] = list[1] + list[0]
    21         list1[3] = list1[0]
    22         list = copy.copy(list1)
    23         print("list1:",list1)
    24         sum1 = sum(list1)
    25 print("兔子总数为:",sum1)

     再看看正确答案,第7行看了半天才看懂,就是把我的简化了下,看了下解析,其实这个数列是斐波那契数列:0,1,1,2,3,5,8,13,21。。。尴尬

    1 month=int(input('繁殖几个月?: '))
    2 month_1=1
    3 month_2=0
    4 month_3=0
    5 month_elder=0
    6 for i in range(month):
    7     month_1,month_2,month_3,month_elder=month_elder+month_3,month_1,month_2,month_elder+month_3
    8     print('第%d个月共'%(i+1),month_1+month_2+month_3+month_elder,'对兔子')
  • 相关阅读:
    智能家居测试思路
    Linux中,&和&&,|和||
    Eclipse设置保存代码时自动格式化代码
    Eclipse常用快捷键
    Eclipse设置快捷出现函数
    Eclipse设置代码背景色
    PDF转换成Word后乱码怎么办?
    Able2Extract快捷键汇总整理
    安装并激活Parallels Desktop商业版
    想在Mac上使用CAD?
  • 原文地址:https://www.cnblogs.com/qgc1995/p/14802440.html
Copyright © 2020-2023  润新知