兔子繁衍问题

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;
}
相关推荐
承渊政道几秒前
【递归、搜索与回溯算法】(floodfill算法:从不会做矩阵题,到真正掌握搜索扩散思想)
数据结构·c++·算法·leetcode·矩阵·dfs·bfs
_小草鱼_几秒前
【数据结构】链表
数据结构·链表·数组·单链表·双链表
黎梨梨梨_2 分钟前
C++入门基础(上)(namespace和缺省参数)
开发语言·c++
谭欣辰2 分钟前
字典树:高效字符串处理利器
c++·算法
俺爱吃萝卜15 分钟前
Java 性能调优实战:从 JVM 内存模型到垃圾回收算法优化
java·jvm·算法
光电笑映25 分钟前
深入C++异常:栈展开、异常安全与工程规范
开发语言·c++·c
鹿角片ljp32 分钟前
LeetCode215: 数组中的第K个最大元素 —— 从快速选择到堆排
算法·排序算法
tankeven34 分钟前
C++ 学习杂记00:标准模板库(STL)
c++
blog_wanghao41 分钟前
条款03:尽可能使用const
c++
天若有情67341 分钟前
用动态规划思路,一步一步实现响应式数据(从本质到落地)
算法·动态规划·代理模式