兔子繁衍问题--C语言

    科技2025-01-06  12

    兔子繁衍问题——C语言

    问题提出

    一对兔子,从出生后第三个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才能到达n对?输入一个不超过10 000的正整数n,输出兔子总数达到n的最少月数,试编写相应程序。

    思路

    由于兔子基数为一对,可以试用列举法观察规律

    月份123456对数112358

    不难发现这是一个斐波那契数列,兔子的总数是上一个月的数量加上上个月的数量,即S(n)=S(n-1)+S(n+1)

    程序设计

    #include<stdio.h> int main() { int n,m=1,t=1,count=2; int sum=1; //sum表示兔子总数 printf("输入要达到的兔子总对数n(n<=10000):"); //输入提示 scanf("%d",&n); if(n==1){ printf("1"); } else{ while(sum<n){ count++; t=m; m=sum; //m存放本次循环中的sum值,用于下一次赋值给t sum=sum+t; } printf("需要的月数:%d\n",count); } return 0; }

    运行演示

    Processed: 0.009, SQL: 8