剑指07 -斐波那契数列(递归&循环两种实现)
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
n≤39
示例1
输入
4
返回值
3
解法一:递归
public class Solution {
public int Fibonacci(int n) {
// 递归头
if(n == 0) {
return 0;
} else if(n==1) {
return 1;
}
// 递归体
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
解法二:循环
public class Solution {
public int Fibonacci(int n) {
if(n == 0) {
return 0;
} else if(n==1) {
return 1;
}
int prePreNum = 0;
int preNum = 1;
int result = 0;
for(int i = 2; i<=n; i++) {
result = prePreNum + preNum;
prePreNum = preNum;
preNum = result;
}
return result;
}
}
能用循环就不用递归