zoukankan      html  css  js  c++  java
  • DAY 007--🐰生🐰问题

    007 问题:                             

    简述:话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子。

       当小兔子长到第三个月后,也会每个月再生一对小小兔子.

    问题:假设条件,兔子都不死的情况下,问每个月的兔子总数为多少?

     

     

     

    流程分析:                                                                    

    由题意:

    第1月:1对

    第2月:1对

    第3月:1对+新生的1对=2对

    第4月:第三个月的兔子+第四个月的兔子出生后周期大于等于3个月的对数(第二个月的兔子总数)=3对

    第5月:第四个月的兔子+第三个月兔子新生的对数=3+2=5对

    ......

     

    得出规律:每个月兔子的对数为:[1,1,2,3,5,8,......]

    从第三个数字开始,每个数字都是前两个数字之和。和之前学的斐波那契函数计算方法一致。

    • 1、设定起始值:a,b=0,1
    • 2、月份循环迭代计算每个月有多少只兔子,(因为每个月的兔子数取决于上一个月和上上个月的兔子数量)
      • for i in month ,对于每一次的i:a,b重新赋值:a,b=b,a+b
    • 3、打印出每个月有多少只兔子

     

     

     

    代码分析:                                                                    

    def fib(month):
        a, b = 0, 1
        for i in range(1, month+1):
            print('第%s个月:%s只兔子' % (i,b))
            a, b = b, a+b
    
    fib(10)
    #输出结果
    第1个月:1只兔子
    第2个月:1只兔子
    第3个月:2只兔子
    第4个月:3只兔子
    第5个月:5只兔子
    第6个月:8只兔子
    第7个月:13只兔子
    第8个月:21只兔子
    第9个月:34只兔子
    第10个月:55只兔子

     

    题目反思:                                                                          

    1、本题最大的难点是如何将每个月的兔子数的规律找出来

    2、找到规律后,运用重新赋值的方法,但是需要注意,赋值必须在一次一次的循环中赋值,否则赋值没有意义                                                            

     

     

     

    新学知识点:                                                                      

    1、初步认识斐波那契函数和斐波那契函数的应用       

     

     

    Mark on 2018.04.13                                                        

  • 相关阅读:
    一小段代码体现出的编程艺术
    2013年:第十一届软交会今天开始
    干掉baidu地图Logo的CSS
    编程语言历史,你属于几零后?
    WebServer实现SQL数据库百度坐标转换转化的算法
    使用Nginx代理Ext.net2.0异步请求报错问题
    PostgreSQL9.3新增的json_populate_recordset函数使用问题
    坐标转换服务笔录
    关于extjs中文乱码和emptyText的问题
    百度地图Polyline画直线BUG
  • 原文地址:https://www.cnblogs.com/JunSheep/p/8743083.html
Copyright © 2011-2022 走看看