C语言——求前20项的斐波那契数列的三种不同方法
·
任务四:编程输出前20项的斐波那契数列
- 斐波那契数列:以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、
- 已知前两项值为0、1,从第3项开始,每一项都是前两项数值之和.即:1,1,2,3,5,8,…
方法一:数组累加(保存数列中的每一个值)
#include "stdio.h"
int main(){
//编程输出前20项的斐波那契数列
//已知前两项值为0、1,从第3项开始,每一项都是前两项数值之和.即:1,1,2,3,5,8
int num[20]={1,1};
printf("斐波那契数列:=====================================\n");
for (int j = 2; j < 22; j++) { //j < 22 ,此处数组不会越界 ,因为输出的是num[j-2];
num[j] = num [j-1] + num[j-2];
printf("num[%d]=%d\n",j-2,num[j-2]);
}
}
运行结果
方法二:变量覆盖(覆盖一个变量值)
#include "stdio.h"
int main(){
//编程输出前20项的斐波那契数列
//已知前两项值为0、1,从第3项开始,每一项都是前两项数值之和.即:1,1,2,3,5,8
int a=1,b=1,next;//next表示a+b;
printf("斐波那契数列:=====================================\n");
printf("第1项为:1\n");
printf("第2项为:1\n");
for (int i = 0; i < 18; ++i) {
next = (a+b);a = b;b =next;
printf("第%d项为:%d\n",i+3,next);
}
}
运行结果:
方法三:变量覆盖(覆盖两个变量值)
只需要循环10次就能输出完前20项
#include "stdio.h"
int main(){
//编程输出前20项的斐波那契数列
//已知前两项值为0、1,从第3项开始,每一项都是前两项数值之和.即:1,1,2,3,5,8
int a=1,b=1;
printf("斐波那契数列:=====================================\n");
for (int i = 0; i < 10; ++i) {
printf(" %d %d ",a,b);
a=a+b;
b=a+b;
}
}
运行结果
传送门----更多内容:
C语言算法题集—复习篇1
更多推荐
已为社区贡献2条内容
所有评论(0)