C 练习实例11
题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....,即下个月是上两个月之和(从第三个月开始)。
程序源代码:
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
// 本程序打印斐波那契数列的前20项
#include <stdio.h>
int main()
{
int a = 1, b = 1, temp, i;
printf("%12d%12d", a, b); // 输出前两项
for (i = 3; i <= 20; i += 2)
{
temp = a + b; // 计算下一项
printf("%12d", temp); // 输出下一项
a = b; // 更新a
b = temp; // 更新b
temp = a + b; // 再计算下一项
printf("%12d\n", temp); // 输出并换行
a = b; // 更新a
b = temp; // 更新b
}
return 0;
}
以上实例输出结果为:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155
冯玉玺
393***315@qq.com
参考地址
使用数组方式:
输出结果为:
冯玉玺
393***315@qq.com
参考地址
zpblog
zpb***@zpblog.cn
参考地址
递归:斐波那契数列
zpblog
zpb***@zpblog.cn
参考地址
小银子
101***1552@qq.com
尽量使用最少的代码,最小的内存实现。不要使用斐波那契数列递归求解,因为这样会做许多无用功
小银子
101***1552@qq.com
123adqe
827***724@qq.com
参考方法:
123adqe
827***724@qq.com
学工
121***1688@qq.com
学工
121***1688@qq.com
HIT_CCC
117***2963@qq.com
参考方法:
HIT_CCC
117***2963@qq.com
o((>ω< ))o
131***2124@qq.com
参考:
o((>ω< ))o
131***2124@qq.com
大宅院里的三表哥
gul***r@outlook.com
使用公式法(本题不推荐该解法,仅作扩展):
+ 使用公式法可直接获取斐波纳契数列的特定项,而不用从第一项开始逐一求解
+ 当遇到需要求解斐波纳契数列的特定项时可使用该法
+ 参考链接:[斐波纳契数列的通项公式及证明](https://www.cnblogs.com/lzxzy-blog/p/12961585.html)
大宅院里的三表哥
gul***r@outlook.com