为什么提交都是WA,用在线IDE通过了测试数据1

P1303 A*B Problem

yu2001feng @ 2018-09-11 16:01:06

代码如下,新手菜鸟,写的有点乱

include <cstdio>

include <iostream>

include <cstring>

using namespace std;

void gjCheng(int[],int[] ,int[]);

int main(int argc, char** argv) { int a[1000]={0},b[1000]={0},c[1000]={0}; string strA,strB; int i,j,k,temp=0,lena,lenb; getline(cin,strA);getline(cin,strB);

if(strA[0]=='-'&&strB[0]!='-')
{
    strA=strA.substr(1,strA.size()-1);
    cout<<"-";
}
if(strA[0]!='-'&&strB[0]=='-')
{
    strB=strB.substr(1,strB.size()-1);
    cout<<"-";
}
if(strA[0]=='-'&&strB[0]=='-')
{
    strA=strA.substr(1,strA.size()-1);
    strB=strB.substr(1,strB.size()-1);
}
lena=strA.length();
lenb=strB.length();
for(i=lena-1,j=1,k=1;i>=0;i--)
{
    if(k==10000)
        {
            a[j++]=temp;
            temp=0;
            k=1;
        }
    temp+=(strA[i]-'0')*k;
    k=k*10;
}
if(temp) a[j]=temp,temp=0;
else     j--;
a[0]=j;

for(i=lenb-1,j=1,k=1;i>=0;i--)
{
    if(k==10000)
        {
            b[j++]=temp;
            temp=0;
            k=1;
        }
    temp+=(strB[i]-'0')*k;
    k*=10;
}
if(temp) b[j]=temp,temp=0;
else     j--;
b[0]=j;

gjCheng(a,b,c);
for(i=c[0];i>=1;i--)
{
    if(i==c[0]) printf("%d",c[i]);
    else        printf("%04d",c[i]);
}

}

void gjCheng(int a[] ,int b[] ,int c[]) { int i,j,x=0;

if(!a[0]||!b[0])  {c[0]=1,c[1]=0;return;}
for(i=1;i<=a[0];i++)
{
    x=0;
    for(j=1;j<=b[0];j++)
    {
        c[i+j-1]=a[i]*b[j]+c[i+j-1]+x;
        x=c[i+j-1]/10000;
        c[i+j-1]%=10000;
    }
    if(x) c[i+j-1]=x;
}
c[0]=i+j-3;
if(x) c[i+j-2]=x,c[0]++;

}


by Viston @ 2018-09-11 16:13:46

a=(int(input()))
b=(int(input()))
print(a*b)

by yu2001feng @ 2018-09-13 15:16:57

@Viston 咱用的不是同一种语言


by pjykk @ 2018-11-14 20:03:07

希望更丰富的展现?使用Markdown


|