#include<stdio.h>int main (void){int i, i_num, F_num[10000];
F_num[1]= F_num[2]=1;//下标为1时,时斐波那契而数列数列的第1项 scanf("%d",&i_num);//n表示要求的第n项if(i_num ==1|| i_num ==2)printf("%d\n", F_num[i_num]);elseif(i_num >=3){for(i =3; i <= i_num; i ++)
F_num[i]= F_num[i-1]+ F_num[i-2];printf("%d\n", F_num[i_num]);}return0;}
运用迭代求解
#include<stdio.h>int main (void){int i, index, i_num;int F_num1 =1, F_num2 =1;scanf("%d",&i_num);//n表示要求的第n项 if(i_num ==1|| i_num ==2)printf("%d\n", F_num1);elseif(i_num >=3){for(i =3; i <= i_num; i ++){
index = F_num2;
F_num2 = F_num1 + F_num2;
F_num1 = index;}printf("%d\n", F_num2);}return0;}
递归法求解
#include<stdio.h>intfun(int n){if( n ==1|| n ==2)return1;elseif(n >=3)returnfun(n-1)+fun(n-2);}intmain(void){int i_num;scanf("%d",&i_num);//n表示要求的第n项 printf("%d\n",fun(i_num));return0;}