解题思路:
注意事项:本题主要考察线性代数的知识。注意一些特殊情况。
参考代码:
#include
int juzheng[3][30][30];
int n;
int js(int i,int j,int a)
{
int k,b=0;
for(k=0;k
{
b+=juzheng[a][i][k]*juzheng[2][k][j];
}
return b;
}
void main()
{
int m,a,b=2,i,j,f;
scanf("%d%d",&n,&m);
a=m;
for(i=0;i
{for(j=0;j
{scanf("%d",&juzheng[2][i][j]);}}
if(a==0){ //当m=0是要将矩阵转换为单位矩阵
for(i=0;i
{for(j=0;j
{if(i==j){juzheng[2][i][j]=1;}else{juzheng[2][i][j]=0;}}
}
}
while(a>1) //当m<0,进行运算
{
for(i=0;i
{
for(j=0;j
{
juzheng[a%2][i][j]=js(i,j,b);
}
}
b=a%2;
a--;
}
for(i=0;i
{ f=1;
for(j=0;j
{ if(f==1){f--;}
else{printf(" ");}
printf("%d",juzheng[b][i][j]);
}
printf("\n");
}
}