zoukankan      html  css  js  c++  java
  • 题目-兔子繁衍问题

    题目-兔子繁衍问题

    一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
    输入格式:

    输入在一行中给出一个不超过10000的正整数N。
    输出格式:

    在一行中输出兔子总数达到N对最少需要的月数。
    输入样例:

    30
    输出样例:

    9

     具体分析

     根据题意,推演规律:用数字“1”代表该月出生的兔子,数字“12”代表长到第2个月的兔子,数字“123”代表长到第3个月的兔子,即具备生育能力的兔子。

    假设兔子都不死,则每个月的所有“123”兔子都会产出新的一个“1”兔子

    第1个月=1 :1

    第2个月=1 :12

    第3个月=2 :123  1

    第4个月=3 :123  12  1

    第5个月=5 :123   123  12  1  1

    第6个月=8 :123  123  123  12  121  1  1

    ……  ……  ……

    规律:自第3个月起,兔子的对数=上个月对数+上上个月对数

    代码

     
     1 #include<iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int n, mon;
     7     cin >> n;
     8     //a、b表示初值,i代表月份,c表示从第3个月起的兔子对数  
     9     int a = 1, b = 1, c=0, i = 2;
    10     
    11     do{
    12         c = a + b;
    13         i++;
    14         a = b;
    15         b = c;
    16     }while(n>c);
    17     cout << i;
    18     return 0;
    19 } 
  • 相关阅读:
    MySQL函数大全
    Hibernate的理论知识点
    捕获异常
    重定向到其他的页面
    Jquery中val、text、html的区别
    条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
    inline-block元素的4px空白间距解决方案
    img标签中alt属性与title属性
    3像素文本偏移bug 解决方案
    google Ip
  • 原文地址:https://www.cnblogs.com/yuanchuying/p/14779215.html
Copyright © 2011-2022 走看看