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 } 
  • 相关阅读:
    ajax相关知识总结
    http协议
    sass基础常用指南
    自定义上传图片样式并实现上传立即展示该图片
    HTML5 History 模式
    网页打印样式CSS
    session和cookie相关知识总结
    第二个冲刺周期
    软件工程学习进度表(第十三周)
    软件工程学习进度表(第十二周)
  • 原文地址:https://www.cnblogs.com/yuanchuying/p/14779215.html
Copyright © 2011-2022 走看看