在Java中求斐波那契数列
时间: 2024-11-01 13:07:15 浏览: 9
在Java中,你可以使用递归、循环或者动态规划的方式来求解斐波那契数列。以下是三种常见方法的简单介绍:
1. **递归**:
```java
public static long fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
递归法虽然简洁,但对于大的`n`值,性能较差,因为会有很多重复计算。
2. **循环**:
```java
public static long fibonacci(int n) {
if (n <= 1) return n;
long fib = 1;
long prevFib = 1;
for (int i = 2; i < n; i++) {
long temp = fib;
fib += prevFib;
prevFib = temp;
}
return fib;
}
```
循环法避免了递归带来的效率损失,时间复杂度为O(n)。
3. **动态规划**:
```java
public static long fibonacci(int n) {
if (n <= 0) return 0;
long[] fibArray = new long[n + 1];
fibArray[0] = 0;
fibArray[1] = 1;
for (int i = 2; i <= n; i++) {
fibArray[i] = fibArray[i - 1] + fibArray[i - 2];
}
return fibArray[n];
}
```
动态规划方法是最高效的选择,因为它只需要存储前两个数,避免了指数级的时间复杂度,时间复杂度为O(n)。
阅读全文