概述
一、题目描述
第一个月有一对刚出生的兔子,它们长到第三个月就有了生育能力,以后每个月都生一对兔子。所以出生的兔子,都会在出生后的第三个月具有生育能力,且所有的兔子都不会死。
要求用户输入一个数字N,程序计算出到第几个月兔子的对数能达到N。
二、代码实现
这个问题里,ret=month++的用法值得关注。它的特点是,month虽然已经增长了1,ret得到的赋值还是month增长前的值。
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int fn=1;
//本月兔子总对数
int fn_1=1;
//上个月兔子总对数
int fn_2=1;
//上上个月兔子总对数
int N;
//我们要达到的兔子对数
int month=1;
//本月是第几月
int ret=1;
//这也是月份,它是我们最终的结果
scanf("%d",&N);
//从用户处获取要达到的兔子总对数
while(fn<N)
//当本月兔子总对数小于我们要达到的数量时,进行循环
{
if(month>=3){
//前两个月,最初的那对兔子还没有成年,所以兔子数量无变化
fn=fn_1+fn_2;
//从第三个月开始,本月兔子数量等于上个月和上上个月的数量之和
fn_2=fn_1;
//把上上个月的兔子数量换成上个月的
fn_1=fn;
//把上个月的兔子数量换成本月的
}
//月份递增,把月份增长前的数值赋给ret
//因为我们是先计算本月的兔子数量,再变成新的一个月,然后再判断当前数量是否已达到N
//所以月份总是超前了
ret=month++;
}
printf("%d",ret);
//打印最终的结果
return 0;
}
如果这篇博文帮到了你,就请给我点个赞吧(#^.^#)
有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙
最后
以上就是活力荔枝为你收集整理的C语言计算第几个月兔子的对数能达到给定的数量N(斐波那契数列)的全部内容,希望文章能够帮你解决C语言计算第几个月兔子的对数能达到给定的数量N(斐波那契数列)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复