基础练习 矩阵乘法
代码
注意考虑0次幂的情况!!!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,n;
int a[110][110],b[110][110],c[110][110];
cin>>m>>n;
for(int i=0; i<m; i++)//输入
{
for(int j=0; j<m; j++)
{
cin>>a[i][j];
}
}
for(int i=0; i<m; i++)//初始化
{
for(int j=0; j<m; j++)
{
b[i][j]=a[i][j];
}
}
if(n>0)
{
for(int k=1; k<n; k++)//乘的次数
{
for(int i=0; i<m; i++)//乘积
{
for(int j=0; j<m; j++)
{
int s=0;
for(int p=0; p<m; p++)
{
s+=b[i][p]*a[p][j];
}
c[i][j]=s;
}
}
for(int i=0; i<m; i++)//赋值
for(int j=0; j<m; j++)
b[i][j]=c[i][j];
}
for(int i=0; i<m; i++)//输出
{
for(int j=0; j<m; j++)
{
if(j==0)
cout<<b[i][j];
else
cout<<" "<<b[i][j];
}
cout<<endl;
}
}
else
{
for(int i=0; i<m; i++)//输出
{
for(int j=0; j<m; j++)
{
if(j==0&&i==0)
cout<<1;
else if(i==j)
cout<<" "<<1;
else
cout<<" "<<0;
}
cout<<endl;
}
}
return 0;
}