初学者利用数组处理求解斐波那契数列
例题:利用数组处理求解斐波那契数列,打印前20位数。 *问题分析:先看斐波那契数列,1、1、2、3、5、8、13…从第3项开始,每一项等于前两项之和。 方法一:将斐波那契数列两两对应,设每组变量f1、f2,得出数列的计算公式并循环计算,分别存入数组a[20],最后打印数组。 严格来说,这种方法并不符合例题要求,第二个方法更符合一些 代码: # include <stdio.h> /*************** 方法一:将斐波那契数列设为两两一对,定义f1、f2两个变量,可得出计算公式。再分别进行存储。 此方法变量较多,但把斐波那契数列和要存储的数组区分开来,比较容易理解运算过程。 ***************/ void main ( ) { int i , f1 = 1 , f2 = 1 , a [ 20 ] = { 1 , 1 } ; //定义变量i用于for循坏及数组a[i],单独设立斐波那契数列的变量f1、f2,先对a[20]数组的前两位赋值1 for ( i = 2 ; i <= 19 ; i ++ ) //i初始值为2,因为a[20]中未知数是从a[2]开始 { f1 = f1 + f2 ; //f1=1+1=2 a [ i ] = f1 ; //a[2]=f1=2 f2 = f2 + f1 ; //f2=1+2=3 i ++ ; //因为每次循环涉及两个变量