1.相关概念:
斐波那契数列,又叫黄金分割数列、Fibonacci数列。它的变化规律是:前两项都是一,第三项开始每一项都等于前两项之和。
2.题目:用一维数组实现求除斐波那契数列的前40项。
3.思路:
(1)要求出Fibonacci的前40项,首先需要定义一个一维数组f(40),用于存储数列的前40项。
(2)Fibonacci的变化规律是前两项均是1,则可以先给f(40)的前两项(f(0)和f(1))先初始化为1。
(3)根据Fibonacci的规律,从第三项开始,数列的每一项都等于前两项之和:
f[2]=f[0]+f[1];
f[3]=f[1]+f[2];
f[4]=f[2]+f[3];
....................
f[39]=f[37]+f[38];
也就是f[i]=f[i-2]+f[i-1];,这可以用一个for循环实现。
4.代码实现
#include"stdio.h"
int main(){
int f[40]={1,1};//定义一维数组f,并将f[0]和f[1]初始化为1(前两项为1)
int i;//用于循环赋值和输出
//1.循环赋值
//i=2,表示从第三项f(2)开始
for(i=2;i<40;i++){
f[i]=f[i-2]+f[i-1];//从第三项开始,等于前两项之和
}
//2.循环输出:从第一项开始输出,所以是i=0(f(0))
for(i=0;i<40;i++){
printf("%20d",f[i]);//%20d用于指定宽带,便于对齐美观
}
return 0;
}
5.运行结果