Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
105297 | 吴宗桦 | 高精度乘法 | C++ | 通过 | 100 | 0 MS | 324 KB | 824 | 2023-10-06 10:27:15 |
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { char a1[5005],b1[5005]; int a[5005],b[5005],c[5005],a2,b2,c2,d,e,x; bool p=1; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); cin>>a1>>b1; a2=strlen(a1);b2=strlen(b1); if(a1[0]=='-') p=0; if(b1[0]=='-') if(p==1) p=0;else p=1; for(d=0;d<=a2-1;d++) a[a2-d]=a1[d]-48; for(d=0;d<=b2-1;d++) b[b2-d]=b1[d]-48; if(a1[0]=='-') a2=a2-1; if(b1[0]=='-') b2=b2-1; for(d=1;d<=a2;d++) { x=0; for(e=1;e<=b2;e++) { c[d+e-1]=a[d]*b[e]+x+c[d+e-1]; x=c[d+e-1]/10; c[d+e-1]%=10; } c[d+b2]=x; } c2=a2+b2; while(c[c2]==0&&c2>1) c2--; if(p==0) cout<<"-"; for(d=c2;d>=1;d--) cout<<c[d]; cout<<endl; return 0; }