斐波那契数列的递归与非递归实现

非递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
int main()
{
int a=1,b=1,c=2,i,n;
printf("你想知道斐波那契数列的第几项:n");
scanf("%d",&n);
for(i=4;i<=n;i++)
{
a=b;
b=c;
c=a+b;
}
printf("斐波那契数列的第%d项为:%d",n,c);
return 0;
}

递归

nnd,写这么个玩意儿写半个多小时,我真的菜的抠脚

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
int Fib(n)
{
if(n<=0)
printf("data error!");
else if(n==1||n==2)
return 1;
else
{
return Fib(n-1) + Fib(n-2);
}
}
int main()
{
int a=1,b=1,c=2,i=4,n,s;
while(1)
{
printf("你想知道斐波那契数列的第几项:n");
scanf("%d",&n);
s=Fib(n);
printf("斐波那契数列的第%d项为:%dn",n,s);
}
return 0;
}