• 7-1 兔子繁衍问题(15 分)


    7-1 兔子繁衍问题(15 分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

    30
    

    输出样例:

    9
    思路:不得不吐槽一下这个题,到底是第三个月起还是第三个月后生,还有到底数总数达到N还是兔子对数达到N,也是绝了。
    正解就是:第三个月起开始生小兔子,然后是当兔子对数达到N,斐波那契数列写。
    第一对兔子是处在第零个月,第一第二个月对数一直是一,第三个月才生了一对小兔子对数等于二,然后以
    斐波那契数列写类推,
    #include<iostream>
    using namespace std;
    int main()
    {
        int n; cin >> n;
        int a = 0, b = 1;
        if (n == 1){ 
            cout << "1" << endl; 
            return 0; 
        }
    
        for (int i = 2;; i++)
        {
            int m = a + b;
            a = b; b = m;
            if (m >= n){
                cout << i << endl;
                break;
            }
        }
        return 0;
    }
    
    
    
     
  • 相关阅读:
    面向对象设计原则之接口隔离原则
    面向对象设计原则之开闭原则
    [OOD]违反里氏替换原则的解决方案
    错误程序
    error: ‘for’ loop initial declarations are only allowed in C99 mode
    函数模板
    查找
    队列类模板
    栈类模板
    单链表的结点类模板
  • 原文地址:https://www.cnblogs.com/zengguoqiang/p/8639422.html
Copyright © 2020-2023  润新知