给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
#include<iostream>
using namespace std;
int N,M;
long long a[30][30],b[30][30],c[30][30];
void mult(int N,int M){
for(int p = 1;p < M; p++){
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++){
long long t = 0;
for(int k = 0; k < N; k++){
t += a[i][k] * b[k][j];
c[i][j] = t;
}
}
}
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
b[i][j] = c[i][j];
}
}
int main() {
cin >> N >> M;
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
cin >> a[i][j];
c[i][j] = b[i][j] = a[i][j];
}
}
if(M == 0){
for(int i = 0; i < N; i++)
for(int j = 0;j < N; j++)
if(i == j) c[i][j] = 1;
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++) {
cout << c[i][j] << " ";
cout << endl;
}
}
}else if(M == 1){
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++) {
cout << a[i][j] << " ";
cout << endl;
}
}
}else {
mult(N,M);
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++)
cout << c[i][j] << " ";
cout << endl;
}
}
return 0;
}
不知道哪错了,求助。(83分)