解题思路:
矩阵的乘法公式:
注意事项: 矩阵的0次幂是单位矩阵哦。
参考代码:#include
int main()
{
int n,m;
int a[32][32]={0},b[32][32]={0},c[32][32]={0};
scanf("%d%d",&n,&m); //n是矩阵的阶,m是矩阵的幂
for(int i=0;i
for(int j=0;j
{
scanf("%d",&a[i][j]);
b[i][j]=a[i][j]; //b保留原来a的初值
}
if(m==0) //如果幂为0,则结果是单位矩阵
{
for(int i=0;i
{
for(int j=0;j
{
if(i==j) printf("1 ");
else printf("0 ");
}
printf("\n");
}
return 0;
}
while(--m) //求矩阵的m次幂
{
for(int i=0;i
for(int j=0;j
{
int sum=0;
for(int k=0;k
sum=sum+a[i][k]*b[k][j];
c[i][j]=sum;
}
for(int i=0;i
for(int j=0;j
a[i][j]=c[i][j];
}
for(int i=0;i
{
for(int j=0;j
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}