第一种用数组实现递归
//斐波那契数的简单运用,递归
#include<stdio.h>
int main()
{
unsigned long long f[20];
f[0] = 1;
f[1] = 1;
int n;
for(n = 2;n < 20;n ++)
{
f[n] = f[n-1] + f[n-2];
}
for (n = 0;n < 20;n ++)
{
printf("%u\t",f[n]);
}
return 0;
}
运用三个数互相赋值来实现递归
#include<stdio.h>
int main()
{
int a,b,c;//利用三个数实现递归
a = 1;
b = 1;
int i;
for (i = 0;i < 5;i ++)
{
c = a + b;
printf("%d\n",c);
a = b + c;
printf("%d\n",a);
b = a + c;
printf("%d\n",b);
}
return 0;
}
用递归来实现赋值
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%d",fib(n));
return 0;
}
int fib(int n)
{
if (n == 1)return 1;
else if (n == 2)return 1;
else return (fib(n-1)+fib(n-2));
}
递归中的return真的流弊