C语言——求前20项的斐波那契数列的三种不同方法

任务四:编程输出前20项的斐波那契数列

  1. 斐波那契数列:以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、
  2. 已知前两项值为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

猜你喜欢

转载自blog.csdn.net/qq_49612126/article/details/125826234