习题4-11 兔子繁衍问题 | 浙大版《C语言程序设计(第3版)》题目集

习题4-11 兔子繁衍问题

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

输入格式:

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

输出格式:

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

输入样例:

30

输出样例:

9

分析:

不查不知道,一查吓一跳!在我疑惑为什么兔子要生那么多小兔子的时候,CSDN小伙伴的答案(我看不明白,链接在这里自取:(https://blog.csdn.net/a7701935/article/details/79943987)里的“斐波那契数列”让我甚是好奇,于是百度。百科给我这个提示:
习题4-11 兔子繁衍问题 | 浙大版《C语言程序设计(第3版)》题目集_第1张图片
好了!根据以上提示,我们可以心中有数,每个月兔宝宝数量为前一个月的成年兔所生,前一个月的兔宝宝这个月都会进化为成年兔,因此这个月都成年兔数量就是前个月的兔宝宝数+前个月的成年兔数,且看我的代码。

代码

#include 

int main(){
    
    int n, month,t, rabbit, baby, sum;
    // n为要达到的兔子数量
    // month就是月份啦(未知)
    // t 在循环里用来存储 前一个月成年兔子rabbit的数量
    // rabbit 指成年兔的数量
    // baby 指兔宝宝的数量
    // sum 指兔子总和
   
    scanf("%d", &n);//输入兔子数量咯
    month = 1; //第一个月开始
    t = 0;
    baby = 1;//第一个月1对兔宝宝
    rabbit = 0;//第一个月0对成年兔
    sum = 1;//第一个月1对兔子
    
    while(sum

你可能感兴趣的:(代码练习,C语言练习册)