题解 AT195 【A mul B Problem】

· · 题解

先来一道开胃菜:AC记录

接下来进入正题:

简单的矩阵乘法,矩阵乘法的运算法则为: k:1~n

Cij=求和:Aik*Bkj 其它就没什么可说的了

上代码!!!

#include<bits/stdc++.h> 
using namespace std;
int a[1005][1005],s,b[1005][1005],c[1005][1005];
int main() 
{
    int i,j,k,n;
    scanf("%d",&n);
   //输入ABC
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            scanf("%d",&b[i][j]);
        }
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            scanf("%d",&c[i][j]);
        }
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            s=0;、、不初始为零可能会出现你无法想象的效果
            for(k=1;k<=n;k++)
            {
                s+=a[i][k]*b[k][j];//上面说的公式
            }
            if(s!=c[i][j])//如果算完发现不一样就说明错了,如果对了就不理他,等下次接着判断
            {
                printf("NO\n");//注意要换行
                return 0;
            }
        }
    }
    printf("YES\n");//如果没有no就说明成功
    return 0;
}

也许我说的不好,但可以捧个人场吗,谢谢啦!!