题目:
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
思路:
- 方法1:递归;
- 方法2:减少重复计算,将fibNMinusOne 和 fibNMinusTwo用来存之前计算的数,时间复杂度O(n)。
程序:
public class subject7 {
public static int Fibonacci(int n) {
int result = 0;
int fibNMinusOne = 0;
int fibNMinusTwo = 1;
if(n <= 0) {
return 0;
}
if(n == 1) {
return 1;
}
while(n != 1) {
result = fibNMinusOne + fibNMinusTwo;
fibNMinusOne = fibNMinusTwo;
fibNMinusTwo = result;
n --;
}
return result;
//方法1:return Fibonacci(n - 1) + Fibonacci(n-2);
}
public static void main(String args[]) {
System.out.println(Fibonacci(10));
}
}