斐波那契数列快速幂java
时间: 2023-10-17 16:08:30 浏览: 61
java代码-使用java解决斐波那契数列的源代码
以下是斐波那契数列的快速幂Java代码实现:
```java
public static int fibonacci(int n) {
if (n <= 1) {
return n;
}
int[][] result = {{1, 0}, {0, 1}}; // 初始化矩阵
int[][] base = {{1, 1}, {1, 0}}; // 斐波那契数列的转移矩阵
while (n > 0) {
if (n % 2 == 1) {
result = multiply(result, base);
}
base = multiply(base, base);
n /= 2;
}
return result[0][1];
}
public static int[][] multiply(int[][] a, int[][] b) {
int m = a.length;
int n = b[0].length;
int[][] result = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < b.length; k++) {
result[i][j] += a[i][k] * b[k][j];
}
}
}
return result;
}
```
其中,`fibonacci(int n)`函数使用快速幂的思想计算第n个斐波那契数,`multiply(int[][] a, int[][] b)`函数用于计算两个矩阵的乘积。
阅读全文