华为机试在线训练-牛客网(33)矩阵乘法
来源:互联网 发布:网络宽带装哪家好 编辑:程序博客网 时间:2024/04/29 19:36
题目描述
如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的:
原型:
voidmatrix_multiply(int *m1,int *m2,int *r, int x, int y, int z);
输入参数:
int *m1:x行y列的矩阵(array1[x][y])
int *m2:y行z列的矩阵(array2[y][z])
int x:矩阵m1的行数
int y:矩阵m1的列数/矩阵m2的行数
int z:矩阵m2的列数
输出参数:
int *r:矩阵m1, m2相乘的结果(array3[x][z])
返回值:
void
输入描述:
输入说明:1、第一个矩阵的行数2、第一个矩阵的列数和第二个矩阵的行数3、第二个矩阵的列数4、第一个矩阵的值5、第二个矩阵的值
输出描述:
输出两个矩阵相乘的结果
输入例子:
2223 88 09 018 9
输出例子:
171 7272 0
从最内往外一层一层看,很容易理解:最内层就是一行乘以一列,得到的是矩阵C中的一个元素;倒数第二层就是一行乘以每一列,得到的是矩阵C中一行的结果;最外层就是每一行乘以每一列,得到即矩阵C的完整结果。写代码时可以按着这个思路从内层循环往外层写,非常清晰。需要注意的是最内层每计算出一个结果就是矩阵C中的一个元素,因此每次都需要清零sum。
int sum=0; for(int m=0;m<x;m++){ for(int n=0;n<z;n++){ for(int k=0;k<y;k++){ sum+=matrixA[m][k]*matrixB[k][n]; } matrixC[m][n]=sum; sum=0; } }
完整AC的代码:
#include <iostream>using namespace std;int main(){ int x,y,z; while(cin>>x>>y>>z){ int data; int matrixA[x][y],matrixB[y][z],matrixC[x][z]; for(int i=0;i<x;i++){ for(int j=0;j<y;j++){ cin>>data; matrixA[i][j]=data; } } for(int i=0;i<y;i++){ for(int j=0;j<z;j++){ cin>>data; matrixB[i][j]=data; } } int sum=0; for(int m=0;m<x;m++){ for(int n=0;n<z;n++){ for(int k=0;k<y;k++){ sum+=matrixA[m][k]*matrixB[k][n]; } matrixC[m][n]=sum; sum=0; } } for(int i=0;i<x;i++){ int j=0; for(;j<z-1;j++){ cout<<matrixC[i][j]<<" "; } cout<<matrixC[i][j]<<endl; } } return 0;}
0 0
- 华为机试在线训练-牛客网(33)矩阵乘法
- 华为机试在线训练-牛客网(4)质数因子
- 华为机试在线训练-牛客网(8)句子逆序
- 华为机试在线训练-牛客网(10)坐标移动
- 华为机试在线训练-牛客网(13)简单密码
- 华为机试在线训练-牛客网(16)字符串排序
- 华为机试在线训练-牛客网(22)字符串加密
- 华为机试在线训练-牛客网(24)迷宫问题
- 华为机试在线训练-牛客网(25)四则运算
- 华为机试在线训练-牛客网(29)DNA序列
- 华为机试在线训练-牛客网(31)配置文件恢复
- 华为机试在线训练-牛客网(32)成绩排序
- 华为机试在线训练-牛客网(34)参数解析
- 华为机试在线训练-牛客网(36)火车进站
- 华为机试在线训练-牛客网(40)字符统计
- 华为机试在线训练-牛客网(41)字符串分割
- 华为机试在线训练–牛客网(python)
- 华为机试在线训练--牛客网(python)第四部分
- 在androidstudio中用cmake进行jni开发
- 用nodejs搭建最简单、轻量化的http server
- window下Slik SVN的安装配置
- 电子商务系统的设计与实现(十一):数据库设计
- 一个简单的Unity游戏开发框架(lua自更新)
- 华为机试在线训练-牛客网(33)矩阵乘法
- LeetCode 508. Most Frequent Subtree Sum【一开始没看懂题】
- 欢迎使用CSDN-markdown编辑器
- Netty系列之Netty高性能之道
- Jfinal自定义实现getModels方法
- 最纯粹的直播技术实战02-Camera的处理以及推流
- C语言基本数据类型
- 【C++】C++ static成员变量与static成员函数
- 【c++】模板实现动态Vector