C语言兔子生兔子问题

假设一对兔子的成熟期是一个月,即一个月可长成成兔,那么,如果每对成兔每个月都生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,以后每个月会有多少对兔子?

程序代码

#include <stdio.h>
int main()
{
    int i,tu1,tu2,tu3,m;
    tu1=1;
    tu2=1;
    printf("请输入月份数\n");
    scanf("%d",&m);
    if(m==1||m==2)
    {
        printf("有一对兔子");
    }
    else if(m>2)
    {
        for(i=3;i<=m;i++)
        {
            tu3=tu1+tu2;
            tu1=tu2;
            tu2=tu3;
        }
        printf("%d 月的兔子数为:%d\n",m,tu3);
    }
    return 0;
}

调试运行结果

执行程序时,会提示输入月份,当输入 12 时,显示这个月的兔子数目,运行结果如下所示:

请输入月份数
12
12 月的兔子数为:144

总结

(1) 实例分析
循环的嵌套是指在一个循环体内又包含了另一个完整的循环。循环的嵌套执行过程是外循环执行一次,内循环执行一次,在内循环结束后,再执行下一次外循环,如此反复,直到外循环结束。

(2) 循环的嵌套注意事项:
① 循环必须完全包含内循环,不能交叉;
② 在多重循环中,各层循环的循环控制变量不能同名;
③ 在多重循环中,并列循环的循环控制变量名可以相同,也可以不同。