题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
思路
1.斐波那契数列:当前项的值等于前两项的值相加

- 非递归
用两个变量来保存前两个数值 - 递归
注意考虑第0项数值为0的情况
代码(非递归)
int x1 = 0, x2 = 0, f = 0;
if (n == 0) {
return 0;
}
for (int i = 1; i <= n; i++) {
if (i == 1 || i == 2) {
x1 = 1;
}
if (i>2) {
f=x1;
x1=f+x2;
x2=f;
}
}
return x1 + x2;
代码(递归)
public class Solution {
public int Fibonacci(int n) {
if(n==1||n==2){
return 1;
}else if(n==0){
return 0;
}else{
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
}
网友评论