兔子繁衍问题

7-2 兔子繁衍问题

分数 15

全屏浏览

切换布局

作者 徐镜春

单位 浙江大学

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

输入格式:

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

输出格式:

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

输入样例:

30

输出样例:

9

1.分析

兔子过两个月后就可以生兔子了,即dp[i]=dp[i-1]+dp[i-2];就是当月的兔子数量等于上个月兔子的数量dp[i-1],加上本月新生的兔子的个数dp[i-2]。

2.代码

cpp 复制代码
#include<iostream>
using namespace std;
const int MAX=11111;
int N,re,arr[MAX];
int main(){
    cin>>N;
    int sum=0;
    arr[0]=1,arr[1]=1;
    while(sum<N){
        for(int i=0;i<=re;i++){
            if(i>=2) arr[i]=arr[i-1]+arr[i-2];      //下标从0开始,判断2
            sum=arr[i];
        }
        re++;
    }
    cout<<re<<endl;
    return 0;
}
相关推荐
lwf0061641 小时前
导数学习日记
学习·算法·机器学习
头发够用的程序员2 小时前
从滑动窗口到矩阵运算:img2col算法基本原理
人工智能·算法·yolo·性能优化·矩阵·边缘计算·jetson
武帝为此2 小时前
【数据清洗缺失值处理】
python·算法·数学建模
Halo_tjn3 小时前
Java 基于字符串相关知识点
java·开发语言·算法
念越3 小时前
算法每日一题 Day08|双指针法解决三数之和
算法·力扣
万法若空4 小时前
C++ <memory> 库全方位详解
开发语言·c++
黎阳之光4 小时前
黎阳之光透明管理:视频孪生重构智慧仓储新范式
人工智能·算法·安全·重构·数字孪生
代码中介商4 小时前
C++ 类型转换深度解析:static_cast、dynamic_cast、const_cast、reinterpret_cast
开发语言·c++
青小莫4 小时前
C++之string(OJ练习)
开发语言·c++·stl
6Hzlia4 小时前
【Hot 100 刷题计划】 LeetCode 199. 二叉树的右视图 | C++ DFS 逆序遍历
c++·leetcode·深度优先