剑指Offer-7-斐波那契数列

题目描述

  大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//尾递归版
class Solution {
public:
//这个数列从第3项开始,每一项都等于前两项之和。
int Fibonacci(int n) {
if(n==0)
return 0;
if(n==1||n==2)
return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
};

//非递归实现
class Solution {
public:
//这个数列从第3项开始,每一项都等于前两项之和。
int Fibonacci(int n) {
if(n==0)
return 0;
if(n==1||n==2)
return 1;
int num=0,num1=1,num2=1;
while(n>2){
num = num1+num2;
num1=num2;
num2=num;
n--;
}
return num;
}
};

----\(˙<>˙)/----赞赏一下吧~