能提供一下最后一点的数据吗?

为什么这个程序过不了?
#include<iostream>
#include <string>
using namespace std;
string a1,b1;
int a[10000+5],b[10000+5];
int data[100000000+5];
int main()
{
cin>>a1>>b1;
int len1=a1.size();
int len2=b1.size();
for(int i=0;i!=a1.size();++i)
a[i]=a1[len1-i-1]-'0';
for(int i=0;i!=b1.size();++i)
b[i]=b1[len2-i-1]-'0';
for(int i=0;i!=len1;++i)
for(int j=0;j!=len2;++j)
data[i+j]+=a[i]*b[j];
for(int i=0;i!=10000+5;++i)
{
data[i+1]+=data[i]/10;
data[i]%=10;
}
int flag=1;
for(int i=10000000+5;i>=0;--i)
{
if(flag==1&&data[i]==0) continue;
if(flag==1&&data[i]!=0) flag=0;
if(flag==0)
cout<<data[i];
}
cout<<endl;
if(flag==1) cout<<0<<endl;
return 0;

}

1 条评论

  • @ 2016-02-18 15:25:56

    #include <iostream>
    using namespace std;
    int x[100001],y[100001],s[20000002];
    string a,b;
    int main()
    {
    cin>>a;
    cin>>b;
    int i,j,la,lb;
    la=a.size();lb=b.size();
    for(i=0;i<la;i++)
    x[i]=(int)a[la-i-1]-48;
    for(i=0;i<lb;i++)
    y[i]=(int)b[lb-i-1]-48;
    for(i=0;i<10001;i++)
    for(j=0;j<10001;j++)
    s[i+j]=s[i+j]+x[i]*y[j];
    for(i=0;i<20002;i++)
    {
    s[i+1]=s[i+1]+s[i]/10;
    s[i]=s[i]%10;
    }
    for(i=2000;i>0;i--)
    {
    if(s[i]!=0)
    break;
    }
    for(i=i;i>=0;i--)
    cout<<s[i];

    return 0;
    }
    我也最后一个死活都过不去 同求数据

  • 1

信息

ID
1040
难度
7
分类
高精度 点击显示
标签
(无)
递交数
16568
已通过
3173
通过率
19%
被复制
26
上传者