← 返回文章流

蓝桥杯 基础练习 矩阵乘法

问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 1 2 3 4 5 6 7 例如: 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次幂所对应的矩阵。相邻的数之间用一个空格隔开 样例输入 1 2 3 2 2 1 2 3 4 样例输出 1 2 7 10 15 22 C++算法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include<cstdio> #include<iostream> #include<cstring> using namespace std; int a[101][101]; int c[101][101]; int ans[101][101]; int main() { int i,j,k,l,m,n; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&a[i][j]); memset(ans,0,sizeof(ans)); for(i=1;i<=n;i++) ans[i][i]=1; for(k=1;k<=m;k++) { memset(c,0,sizeof(c)); for(i=1;i<=n;i++)for(j=1;j<=n;j++)for(l=1;l<=n;l++)c[i][j]+=ans[i][l]*a[l][j]; for(i=1;i<=n;i++)for(j=1;j<=n;j++)ans[i][j]=c[i][j]; } for(i=1;i<=n;i++) { for(j=1;j<n;j++)printf("%d ",ans[i][j]); printf("%d\n",ans[i][n]); } return 0; } 关注微信公众号,第一时间获取最新内容,让我们一起变得更强!Debug客栈:订阅本站· 文章归档· 我的项目· 友情链接· 我的使用· 飞湾计划· 摄影展集· 我的主页· 知盈官网

来自 Debug客栈作者主页
在原博客阅读全文 (新标签页打开)

以上内容来自博客订阅源,版权归原作者。关注作者后可以在 关注列表 第一时间查看作者文章。

一起聊聊 0

尊重不同观点

还没有评论。欢迎分享第一个想法。

RSS SUBSCRIPTIONS

选择 RSS 订阅

把博客汇的文章添加到你常用的阅读器。

关注文章 RSS 订阅本订阅需要登录后使用