为什么wa,过不去求助

P1303 A*B Problem

steven张 @ 2017-10-21 07:59:27

本地下载数据完全没有问题,为什么交上去就WA?

一个是A+B,一个是A*B都是wa

#include<bits/stdc++.h>
using namespace std;
const int maxlen=10000;
char a[10000],b[10000],c[10000];
int asize,bsize,mnsize,mxsize,mulsize;
int x[maxlen],y[maxlen];
void get()
{
    int k=1;
    a[1]=getchar();
    while(a[k]<='9'&&a[k]>='0')
    {
        k++;
        a[k]=getchar();
    }
    asize=k-1;
    k=1;
    b[1]=getchar();
    while(b[k]<='9'&&b[k]>='0')
    {
        k++;
        b[k]=getchar();
    }
    bsize=k-1;
    mxsize=max(asize,bsize);
    mnsize=min(asize,bsize);
}
void init()
{
    for(int i=asize;i>=1;i--)
        x[asize-i+1]=a[i]-'0';
    for(int i=bsize;i>=1;i--)
        y[bsize-i+1]=b[i]-'0';
}
void add()
{
    for(int i=1;i<=mxsize;i++)
    {
        c[i]=x[i]+y[i];
        if(c[i]>=10) c[i]-=10,c[i+1]++;
    }
}
void mul()
{
    if(asize==mnsize)
    {
        for(int i=1;i<=mnsize;i++)//x
            for(int j=1;j<=mxsize;j++)//y
                c[j+i-1]+=x[i]*y[j];
    }
    else if(bsize==mnsize)
    {
        for(int i=1;i<=mnsize;i++)//y
            for(int j=1;j<=mxsize;j++)//x
                c[j+i-1]+=y[i]*x[j];
    }
    mulsize=mnsize+mxsize-1;
    for(int i=1;i<=mulsize;i++)
    {
        if(c[i]>=10)
        {
            c[i+1]+=c[i]/10;
            c[i]=c[i]%10;
        }
    }
    if(c[mulsize]>=10)
    {
        c[mulsize++]-=10;
        c[mulsize]=1;
    }
}
void printadd()
{
    int k=mxsize+1;
    while(c[k]==0) k--;
    for(int i=k;i>=1;i--)
    {
        printf("%d",c[i]);
    }
}
void printmul()
{
    int k=mulsize;
    while(c[k]==0&&k!=1) k--;
    for(int i=k;i>=1;i--)
        printf("%d",c[i]);
}
int main()
{
    //freopen("add.in","r",stdin);
    get();
    init();
    mul();
    printmul();
}

by 洛谷1号管理员 @ 2017-10-22 16:20:31

我只会写这个。。。。。。

#include<iostream>
using namespace std;
int main()
{
int a,b,s;
cin>>a>>b;
s=a*b;
cout<<s<<endl;
}
结果40分。。。。。。可以改改

|