• 团体程序设计天梯赛-练习集-L1-048. 矩阵A乘以B


    L1-048. 矩阵A乘以B

    给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ca与Rb相等时,两个矩阵才能相乘。

    输入格式:

    输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。

    输出格式:

    若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出“Error: Ca != Rb”,其中Ca是A的列数,Rb是B的行数。

    输入样例1:
    2 3
    1 2 3
    4 5 6
    3 4
    7 8 9 0
    -1 -2 -3 -4
    5 6 7 8
    
    输出样例1:
    2 4
    20 22 24 16
    53 58 63 28
    
    输入样例2:
    3 2
    38 26
    43 -5
    0 17
    3 2
    -11 57
    99 68
    81 72
    
    输出样例2:
    Error: 2 != 3
    做法:两矩阵相乘,左矩阵第一行乘以右矩阵第一列(分别相乘,第一个数乘第一个数),乘完之后相加,即为结果的第一行第一列的数
     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 int a[110][110], b[110][110], c[110][110], ra, ca, rb, cb;
     6 
     7 int main() {
     8     cin >> ra >> ca;
     9     for (int i = 0; i < ra; i++) {
    10         for (int j = 0; j < ca; j++) {
    11             cin >> a[i][j];
    12         }
    13     }
    14     cin >> rb >> cb;
    15     for (int i = 0; i < rb; i++) {
    16         for (int j = 0; j < cb; j++) {
    17             cin >> b[i][j];
    18         }
    19     }
    20     if (ca == rb) {
    21         for (int i = 0; i < ra; i++) {
    22             for (int j = 0; j < cb; j++) {
    23                 c[i][j] = 0;
    24                 for (int k = 0; k < rb; k++) {
    25                     c[i][j] += (a[i][k] * b[k][j]);
    26                 }
    27             }
    28         }
    29         printf ("%d %d
    ", ra, cb);
    30         for (int i = 0; i < ra; i++) {
    31             for (int j = 0; j < cb; j++) {
    32                 printf ("%d%c", c[i][j],(j == cb - 1) ? '
    ' : ' ');
    33             }
    34         }
    35     } else
    36         printf ("Error: %d != %d
    ", ca, rb);
    37     return 0;
    38 }
     
  • 相关阅读:
    easyUI之tree
    MSSQL索引优化
    MongoDB学习笔记(一) MongoDB介绍及安装
    项目经理必备的11种人际关系技能
    http协议详细介绍
    ERP存储过程
    UVA1339 UVALive3213 POJ2159 ZOJ2658 Ancient Cipher【密码】
    UVA1588 UVALive3712 POJ3158 Kickdown
    UVA1588 UVALive3712 POJ3158 Kickdown
    UVA10340 POJ1936 ZOJ1970 All in All【字符串匹配】
  • 原文地址:https://www.cnblogs.com/zhien-aa/p/8612655.html
Copyright © 2020-2023  润新知