实现斐波那契可分为递归和非递归的方式,递归方法即浪费空间也耗费时间,不推荐使用。
代码如下(gcc编译器):
#include <stdlib.h>
#include <stdio.h>
unsigned int fibonaci(int num)
{
//递归
if(num == 1|| num == 2 ) return 1;
return fibonaci(num-1)+fibonaci(num-2);
}
unsigned int fibonaci_2(int num)
{
//循环
int fn1 = 1;
int fn2 = 1;
int fn;
int i;
if(num == 1 || num == 2) return 1;
for(i=3;i<=num;i++)
{
fn = fn1 + fn2;
fn2 = fn1;
fn1 = fn;
}
return fn;
}
int main()
{
printf("%d\n", fibonaci(10));
printf("%d\n", fibonaci_2(10));
return 0;
}