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 }