题意
求两个矩阵的乘法。
分析
我们其实只需要知道矩阵乘法要求两个矩阵,第一个的大小为 ,第二个的大小为 。那么 才能进行乘法。而乘法的计算方式就在题面上。
代码
#include<bits/stdc++.h> using namespace std; const int N = 40; #define LL long long const int inf = 0x3f3f3f3f; int read() { int x = 0,f = 0;char ch = getchar(); while(!isdigit(ch)) {if(ch=='-')f=1;ch = getchar();} while(isdigit(ch)) {x = x * 10 + ch - '0';ch = getchar();} return f?-x:x; } int a[N][N],b[N][N],c[N][N],Case,num; int main() { while(1){ int n=read(),m=read(),u=read(),d=read(); if(!n&&!m&&!u&&!d)return 0;cout<<"Case #"<<++num<<":"<<endl; for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)a[i][j]=read(); for(int i=1;i<=u;i++)for(int j=1;j<=d;j++)b[i][j]=read(); if(m!=u){cout<<"undefined"<<endl;continue;} else { for(int i=1;i<=n;i++)for(int j=1;j<=d;j++)c[i][j]=0; for(int i=1;i<=n;i++)for(int j=1;j<=d;j++)for(int k=1;k<=m;k++) c[i][j]=(c[i][j]+a[i][k]*b[k][j]); for(int i=1;i<=n;i++){ cout<<"| "; for(int j=1;j<=d;j++)cout<<c[i][j]<<" "; cout<<"|"<<endl; } } } }