#include <stdio.h>
long fib_recursion(long num) //使用递归方法实现
{
if(num == 1 || num == 2)
return 1;
else
return fib_recursion(num - 1) +fib_recursion(num -2);
}
long fib_non_recursion(long num) //非递归方法实现
{
int temp[2];
temp[0] = 1;
temp[1] = 1;
if(num == 1 || num == 2)
return 1;
else
{
int i = 0;
int tp = 0;
for(i = 2;i < num;i ++)
{
tp = temp[0] + temp[1];
temp[1] = temp[0];
temp[0] = tp;
}
return tp;
}
}
int main(void) //测试代码
{
printf("fib_recursion(5) =%ld.\n",fib_recursion(5) );
printf("fib_recursion(6) =%ld.\n",fib_recursion(6) );
printf("fib_non_recursion(5) =%ld.\n",fib_non_recursion(5) );
printf("fib_non_recursion(6) =%ld.\n",fib_non_recursion(6) );
return 0;
}