文章
40
粉丝
0
获赞
56
访问
8.9k
#include<bits/stdc++.h>
using namespace std;
// 两个n*n的矩阵相乘
void Cheng(long long num1[20][20],long long num2[20][20],int n){
int l=0,p3=0; //l表示第一个矩阵的行
long long num3[1000];
while(l<n){
int p=0;
while(p<n){
long long sum=0;
// m表示第一个矩阵的列
for(int m=0;m<n;m++){
sum=sum+num1[l][m]*num2[m][p];
}
num3[p3]=sum;
p3++;
p++;
}
l++;
}
int r=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
num1[i][j]=num3[r];
r++;
}
}
}
int main(){
int n,k;
while(cin>>n>>k){
long long num[20][20],sum[20][20];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>num[i][j];
sum[i][j]=num[i][j];
}
}
for(int i=0;i<k-1;i++){
Cheng(sum,num,n);
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout << sum[i][j];
if(j != n-1) cout << " "; // 只有在不是最后一个数时才输出空格
}
cout << "\n";
}
...
登录后发布评论
暂无评论,来抢沙发