本地测对,但是提交全错QAQ

P1303 A*B Problem

饮溪 @ 2017-10-31 20:37:39

交了好几次不对,于是下载了几个数据本地测。。。

明明是对的啊?

比如这个:

如上图,第一个点:本地测输出0

但是评测结果说我的程序输出10?

蒟蒻求助QAQ

下面是冗长的代码:

#include<bits/stdc++.h>
using namespace std;
string st1,st2,st3,st4;
int a[2010],b[2010],ans[4020];
int main()
{
    cin>>st1;
    cin>>st2;
    int lena=st1.size();
    int lenb=st2.size();
    for (int i=1;i<=lena;i++) st3[i]=st1[i-1];
    for (int i=1;i<=lenb;i++) st4[i]=st2[i-1];
    for (int i=1;i<=lena;i++) a[lena-i+1]=st3[i]-48;
    for (int i=1;i<=lenb;i++) b[lenb-i+1]=st4[i]-48;
    int x,l;
    for (int i=1;i<=lena;i++)
    {
        x=0;
        for (int j=1;j<=lenb;j++)
        {
            ans[i+j-1]=ans[i+j-1]+a[i]*b[j]+x;
            x=ans[i+j-1]/10;
            ans[i+j-1]=ans[i+j-1]%10;
            l=j;
        }
        ans[i+l]=x;
    }
    int lenans=lena+lenb;
    while (ans[lenans]==0&&lenans>1) lenans--;
    for (int aa=lenans;aa>=1;aa--) cout<<ans[aa];
    cout<<endl;
    return 0;
}

by 饮溪 @ 2017-11-01 13:07:42

@Fire_Storm 输入和处理改成了这样

    gets(st1);
    gets(st2);
    int lena=strlen(st1);
    int lenb=strlen(st2);
    for (int i=0;i<lena;i++) a[lena-i]=st1[i]-48;
    for (int i=0;i<lenb;i++) b[lena-i]=st2[i]-48;

by Ameyax @ 2017-11-01 13:40:52

@Sure 额

不用gets,自测可以到洛谷IDE上试试,这些问题都会有的


by Ryuuko @ 2017-11-01 13:50:22

@Sure 洛谷好像不让用gets

之前20分的代码按上面那个发的写法从0开始就可以a


by 饮溪 @ 2017-11-01 16:26:01

@Tokisaki_Kurumi 哦,谢谢你啊


by 饮溪 @ 2017-11-01 16:26:31

@Fire_Storm 谢谢!


by Sunlight9 @ 2018-01-07 12:02:58

@饮溪 我也是一样


by 哥66666 @ 2018-03-07 13:07:15

@Liso 卡了,本地对了,洛谷炸了


上一页 |