欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

矩阵乘法(TLE)

发布时间:2023/12/15 编程问答 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 矩阵乘法(TLE) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

矩阵乘法(TLE)

问题描述 :

给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
  例如:
  A =
  1 2
  3 4
  A的2次幂
  7 10
  15 22

输入说明 :

第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
  接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值

输出说明 :

输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开

输入范例 :

2 2
1 2
3 4

输出范例 :

7 10
15 22

#include<stdio.h> int main(){int n,m;int i,j;int a[30][30];int p,q,u,v,s,t;int b[30][30],c[30][30];scanf("%d %d",&n,&m);for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);b[i][j]=a[i][j];//存储输入的数组并同时存入数组b}}while(m--!=1){ //对矩阵进行m次相乘for(p=0;p<n;p++){ for(j=0;j<n;j++){int pro=0,sum=0;for(q=0,i=0;q<n,i<n;q++,i++){pro=b[p][q]*a[i][j];//矩阵对应位置上相乘sum=sum+pro;}c[p][j]=sum;//将每个位置上的数对应存入数组c中}}for(u=0;u<n;u++){for(v=0;v<n;v++){b[u][v]=c[u][v];//用数组b替换数组c,再循环与数组a相乘}}}for(s=0;s<n;s++){for(t=0;t<n;t++){printf("%d ",c[s][t]);}printf("\n");}return 0; }

总结

以上是生活随笔为你收集整理的矩阵乘法(TLE)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。