算法笔记_001:斐波那契数的多种解法(Java)
时间: 2023-07-26 15:40:34 浏览: 66
好的,以下是斐波那契数的多种解法(Java):
1. 递归法
```java
public static int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
2. 递推法
```java
public static int fibonacci(int n) {
if (n <= 1) {
return n;
}
int fib = 1;
int prevFib = 1;
for (int i = 2; i < n; i++) {
int temp = fib;
fib += prevFib;
prevFib = temp;
}
return fib;
}
```
3. 数组法
```java
public static int fibonacci(int n) {
if (n <= 1) {
return n;
}
int[] fibArr = new int[n + 1];
fibArr[0] = 0;
fibArr[1] = 1;
for (int i = 2; i <= n; i++) {
fibArr[i] = fibArr[i - 1] + fibArr[i - 2];
}
return fibArr[n];
}
```
4. 公式法
```java
public static int fibonacci(int n) {
double phi = (1 + Math.sqrt(5)) / 2;
return (int) Math.round(Math.pow(phi, n) / Math.sqrt(5));
}
```
以上就是斐波那契数的多种解法(Java)。