Fibonacci函数实现

来源:互联网 发布:手机淘宝beta版本过期 编辑:程序博客网 时间:2024/04/29 17:25
题目:定义Fibonacci数列如下:   
  / 0 n=0
f(n)= 1 n=1
  \ f(n-1)+f(n-2) n=2

输入n,用最快的方法求该数列的第n项。
分析:在很多C语言教科书中讲到递归函数的时候,都会用Fibonacci作为例子。

因此很多程序员对这道题的递归解法非常熟悉,但....呵呵,你知道的。。


#include "stdlib.h"#include "stdio.h"//Using recursion method to implementint Fibonacci(int n){if(n == 0)return 0;else if(n == 1)return 1;else return Fibonacci(n-1) + Fibonacci(n-2);}//Using non recursion method to implementint Fibonacci_1(int n){if(n == 0)return 0;if(n == 1)return 1;int fb = 0;int fa = 1;int f_now = 0;for(int i=2; i<=n; ++i){f_now = fa + fb;fb = fa;fa = f_now;}return f_now;}#define maxSize 1000//Using non recursion method to implementint Fibonacci_2(int n){if(n == 0)return 0;if(n == 1)return 1;int f[maxSize] = {0};f[1] = 1;int i;for(i=2; i<=n; ++i){f[i] = f[i-1] + f[i-2];}return f[i-1];}void main(){printf("%d \n", Fibonacci_2(5));}


0 0
原创粉丝点击