C语言实现斐波那契数列数列 采用矩阵快速幂的方法 实现的代码 
时间: 2023-03-25 17:04:52 浏览: 34
以下是 C 语言实现斐波那契数列数列采用矩阵快速幂的方法的代码:
```c
#include <stdio.h>
void matrix_multiply(int a[2][2], int b[2][2], int c[2][2]) {
int i, j, k;
for (i = ; i < 2; i++) {
for (j = ; j < 2; j++) {
c[i][j] = ;
for (k = ; k < 2; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
}
void matrix_pow(int a[2][2], int n, int b[2][2]) {
int i, j;
int c[2][2];
b[][] = b[1][1] = 1;
b[][1] = b[1][] = ;
while (n > ) {
if (n % 2 == 1) {
matrix_multiply(b, a, c);
for (i = ; i < 2; i++) {
for (j = ; j < 2; j++) {
b[i][j] = c[i][j];
}
}
}
matrix_multiply(a, a, c);
for (i = ; i < 2; i++) {
for (j = ; j < 2; j++) {
a[i][j] = c[i][j];
}
}
n /= 2;
}
}
int fibonacci(int n) {
int a[2][2] = {{1, 1}, {1, }};
int b[2][2];
matrix_pow(a, n - 1, b);
return b[][];
}
int main() {
int n;
printf("请输入斐波那契数列的项数:");
scanf("%d", &n);
printf("斐波那契数列的第%d项是%d\n", n, fibonacci(n));
return ;
}
```
以上是 C 语言实现斐波那契数列数列采用矩阵快速幂的方法的代码。
相关推荐













