Lyrics @ 2016-11-13 20:25:56
本人高精度辣鸡,写乘法写的死去活来,程序电脑上试了是可以的,但是到了评测的时候全部挂了,求指出错误!!!谢谢!!!
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
char s1[10050],s2[10050];
int tot1[10050],tot2[10050],tot[1000000],len1,len2,len;
int main(){
scanf("%s",&s1);
scanf("%s",&s2);
len1=strlen(s1);
len2=strlen(s2);
len=max(len1,len2);
for(int i=0;i<len1;i++)
tot1[len1-i-1]=s1[i]-'0';
for(int i=0;i<len2;i++)
tot2[len2-i-1]=s2[i]-'0';
for(int i=0;i<len1;i++)
for(int j=0;j<len2;j++)
tot[i+j]=tot[i+j]+tot1[i]*tot2[j];
for(int i=0;i<len1;i++)
for(int j=0;j<len2;j++)
if(tot[i+j]>=10){
tot[i+j+1]+=tot[i+j]/10;
tot[i+j]%=10;
}
int x;
for(x=len;x>=1;x--)
if(tot[x]!=0)break;
for(int i=x+1;i>=0;i--)
cout<<tot[i];
cout<<endl;
}
by syfufo @ 2016-11-16 09:18:13
自己试试10*10
by 水墨 @ 2016-12-24 17:38:18
0*10,我下载的一个很数据