过不了样例

P1303 A*B Problem

哥66666 @ 2018-03-06 13:24:09

本蒟蒻个人认为主要是C++的字符串从下标01开始储存,所以输错,但本蒟蒻加了一位后依旧这样,求dalao and dashen教我。 代码:

#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<sstream>
using namespace std;
string s1,s2;
int len1,len2,len,i,j,total;
int a[10001],b[10001],c[100001];
int main()
{
    getline(cin,s1);
    getline(cin,s2);
    //s1=" "+s1; 加了之后c数组出现负数
    //s2=" "+s2;
    len1=s1.length();
    len2=s2.length();
    len=len1+len2;
    for(i=1;i<=len1;i++)
    {
        a[i]=s1[len1-i+1]-'0';
    }
    for(j=1;j<=len2;j++)
    {
        b[j]=s2[len2-j+1]-'0';
    }
    for(i=1;i<=len1;i++)
        for(j=1;j<=len2;j++)
        {
            c[i+j]+=a[i]*b[j];
            c[i+j+1]+=c[i+j]/10;
            c[i+j]=c[i+j]%10;
        }
    if(c[len]==0) len--;
    for(i=len;i>=1;i--)
        printf("%d",c[i]);
}

1*2都过不了

在线等,急


|