一、题目描述
第一个月有一对刚出生的兔子,它们长到第三个月就有了生育能力,以后每个月都生一对兔子。所以出生的兔子,都会在出生后的第三个月具有生育能力,且所有的兔子都不会死。
要求用户输入一个数字N,程序计算出到第几个月兔子的对数能达到N。
二、代码实现
这个问题里,ret=month++的用法值得关注。它的特点是,month虽然已经增长了1,ret得到的赋值还是month增长前的值。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39#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语言计算第几个月兔子内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复