矩阵A+B

来源:互联网 发布:matlab优化函数 编辑:程序博客网 时间:2024/05/16 09:47

link:http://acm.hpu.edu.cn/vjudge/contest/view.action?cid=7#problem/A

Description

在数学中,矩阵是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。 矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。作为A+B问题,我们在此掌握矩阵的加法运算:

a11a21a31a12a22a32a13a23a33+b11b21b31b12b22b32b13b23b33=a11+b11a21+b21a31+b31a12+b12a22+b22a32+b32a13+b13a23+b23a33+b33

上式就表示两个3*3矩阵的加法,聪明的你应该想到n*m的矩阵运算法则:两个n*m矩阵A和B的和,一样是个n*m矩阵,其内的各元素为其相对应元素相加后的值。现在给你两个矩阵A、B,请你输出得到的A+B结果矩阵。

Input

第一行是两个数n、m,表示给出两个n行m列的矩阵。下面n行描述矩阵A,再下面n行描述矩阵B。详细格式请参考样例。1 ≤ n ≤ 501 ≤ m ≤ 500 ≤ |aij| ≤ 1050 ≤ |bij| ≤ 105

Output

请输出n行数描述矩阵A+B。每行的m个数用一个空格分隔开,行末不需要空格。

Sample Input

2 31 2 33 4 51 1 01 2 0 

Sample Output

2 3 34 6 5 

题解:公式代码化
AC代码:

#include<cstdio>#include<iostream>#include<cstdlib>#include<cmath>#include<cstring>#include<algorithm>using namespace std;int main(){    int n,m,a[55][55],b[55][55],i,j;    scanf("%d%d",&m,&n);    for(i=0;i<m;i++)        for(j=0;j<n;j++)            scanf("%d",&a[i][j]);    for(i=0;i<m;i++)        for(j=0;j<n;j++)            scanf("%d",&b[i][j]);    for(i=0;i<m;i++)        for(j=0;j<n;j++)            a[i][j]+=b[i][j];    for(i=0;i<m;i++)        for(j=0;j<n;j++)            printf("%d%c",a[i][j],j==n-1? '\n':' ');return 0;}