C语言求矩阵的乘法!!!!!!!!!
											有没有一种 我输入N,程序就求出矩阵M的N次方的程序????我自己写了一个,多一次方就多一个for循环,理论上何以求到N次,但是觉得不够简洁。。。。。。。 程序代码:
程序代码:#include<stdio.h>
#include<conio.h>
void main(void){
int M[5][5],Mk[5][5],MKK[5][5],MKKK[5][5],i,j,p;
M[0][0]=0;M[0][1]=0;M[0][2]=0;M[0][3]=0;M[0][4]=1;
M[1][0]=1;M[1][1]=0;M[1][2]=1;M[1][3]=0;M[1][4]=0;
M[2][0]=0;M[2][1]=0;M[2][2]=0;M[2][3]=0;M[2][4]=1;
M[3][0]=1;M[3][1]=0;M[3][2]=1;M[3][3]=0;M[3][4]=0;
M[4][0]=0;M[4][1]=1;M[4][2]=0;M[4][3]=1;M[4][4]=0;
for(i=0;i<5;i++){
  for(j=0;j<5;j++){Mk[i][j]=0;
    for( p=0;p<5;p++)
        Mk[i][j]=Mk[i][j]+M[i][p]*M[p][j];
  }
}
for(i=0;i<5;i++){
  for(j=0;j<5;j++){MKK[i][j]=0;
    for( p=0;p<5;p++)
        MKK[i][j]=MKK[i][j]+Mk[i][p]*M[p][j];
  }
}
for(i=0;i<5;i++){
  for(j=0;j<5;j++){MKKK[i][j]=0;
    for( p=0;p<5;p++)
        MKKK[i][j]=MKKK[i][j]+MKK[i][p]*M[p][j];
  }
}
for(i=0;i<5;i++){
  for(j=0;j<5;j++)
     printf("%8d",MKKK[i][j]);
     printf("\n");}
getch();
}										
					
	
 
											





 
	    


 
											