剑指Offer07 斐波那契数列

 1 /*************************************************************************
 2     > File Name: 07_Fibonacci.c
 3     > Author: Juntaran
 4     > Mail: JuntaranMail@gmail.com
 5     > Created Time: 2016年08月29日 星期一 20时23分54秒
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 
10 long long Fibonacci1(int n)
11 {
12     if (n <= 0)
13         return 0;
14     if (n == 1)
15         return 1;
16     return Fibonacci1(n-2) + Fibonacci1(n-1);
17 }
18 
19 long long Fibonacci2(int n)
20 {
21     int result[2] = {0, 1};
22     if (n < 2)
23         return result[n];
24     
25     long long fibNum1 = 0;
26     long long fibNum2 = 1;
27     long long temp = 0;
28     
29     for (int i = 2; i <= n; ++i)
30     {
31         temp = fibNum1 + fibNum2;
32         fibNum1 = fibNum2;
33         fibNum2 = temp;
34     }
35     return temp;
36 }
37 
38 int main()
39 {
40     int n = 100;
41     long long ret1, ret2;
42     ret1 = Fibonacci1(n);
43     ret2 = Fibonacci2(n);
44     printf("ret1 is %lld, ret2 is %lld\n", ret1, ret2);
45 }

 

posted @ 2016-08-29 20:29  Juntaran  阅读(177)  评论(0编辑  收藏  举报