/** * 矩阵相乘,第a行乘以b列 */ intsolut(int tem[10][10], int num[10][10], int a, int b, int n){ int ans = 0; for(int i = 0; i < n; i ++) { ans += tem[a][i]*num[i][b]; } return ans; }
intmain(){ int n, m,num[10][10],tem[10][10],ans[10][10]; cin>>n>>m; for(int i = 0; i < n; i ++) for(int j = 0; j < n; j++) { cin>>num[i][j]; ans[i][j] = num[i][j]; } //计算 for(int i = 1; i < m; i ++) { for(int j = 0; j < n; j ++){ for(int k = 0;k < n; k ++){ tem[j][k] = ans[j][k]; } } //矩阵相乘 for(int j = 0; j < n; j ++) { for(int k = 0; k < n; k ++) { ans[j][k] = solut(tem,num,j,k,n); } } } //输出 for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cout<<ans[i][j]; if(j==n-1) { cout<<endl; } else { cout<<" "; } } } return0; }