
用C语言求二阶矩阵的n次方 5
1个回答
展开全部
#include<stdio.h>
int main(int argc,char* argv[]){
int n;
int A[4],B[4];
scanf("%d",&n);
scanf("%d %d %d %d",&A[0],&A[1],&A[2],&A[3]);
void MatMultiply(int &B[4],int A[4]);
for(int i=0;i<4;i++)B[i]=A[i];
if(n<1){printf("error\n") ;return;}
else if(n==1)
else{
for(int i=0;i<n-1;i++)MatMultiply(B,A);
}
printf("%d %d \n %d %d \n",B[0],B[1],B[2],B[3]);
return 0;
}
void MatMultiply(int &B[4],int A[4]){
int C[4];
for(int i=0;i<2;i++)
for(int j=0;j<2;j++){
int temp=0;
for(int k=0;k<2;k++)temp+=A[i*2+k]*B[k*2+j];
C[i*2+j]=temp;
}
for(int i=0;i<4;i++)B[i]=C[i];
}
int main(int argc,char* argv[]){
int n;
int A[4],B[4];
scanf("%d",&n);
scanf("%d %d %d %d",&A[0],&A[1],&A[2],&A[3]);
void MatMultiply(int &B[4],int A[4]);
for(int i=0;i<4;i++)B[i]=A[i];
if(n<1){printf("error\n") ;return;}
else if(n==1)
else{
for(int i=0;i<n-1;i++)MatMultiply(B,A);
}
printf("%d %d \n %d %d \n",B[0],B[1],B[2],B[3]);
return 0;
}
void MatMultiply(int &B[4],int A[4]){
int C[4];
for(int i=0;i<2;i++)
for(int j=0;j<2;j++){
int temp=0;
for(int k=0;k<2;k++)temp+=A[i*2+k]*B[k*2+j];
C[i*2+j]=temp;
}
for(int i=0;i<4;i++)B[i]=C[i];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2023-08-25 广告
"整定计算的工作步骤,大致如下:1.确定整定方案所适应的系统情况。2.与调度部门共同确定系统的各种运行方式。3.取得必要的参数与资料(保护图纸,设备参数等)。4.结合系统情况,确定整定计算的具体原则。5.进行短路计算。6.进行保护的整定计算...
点击进入详情页
本回答由北京埃德思远电气技术咨询有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询