Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
106548 毛泓博(做题专用,大号Fess) 万进制高精度运算 C++ 运行超时 0 1000 MS 1168 KB 1351 2023-10-12 18:45:04

Tests(0/100):


#include<bits/stdc++.h> using namespace std; string a1,b1; int a[50005],b[50005],s[100005],lena,lenb,lens; int main() { cin>>a1>>b1; lena=a1.length(); lenb=b1.length(); lens=max(lena,lenb); for(int i=1;i<=lena;i++) a[i]=a1[lena-i]-48; for(int i=1;i<=lenb;i++) b[i]=b1[lenb-i]-48; for(int i=1;i<=lens;i++) { s[i]+=(a[i]+b[i]); if(s[i]>=10) { s[i+1]++; s[i]%=10; } } if(s[lens+1]) lens++; while(!s[lens]&&lens>1) lens--; for(int i=lens;i>=1;i--) cout<<s[i],s[i]=0; cout<<'\n'; if(a1.length()<b1.length()||a1.length()==b1.length()&&a1<b1) { string t; t=a1; a1=b1; b1=t; cout<<'-'; } lens=max(lena,lenb); for(int i=1;i<=lena;i++) a[i]=a1[lena-i]-48; for(int i=1;i<=lenb;i++) b[i]=b1[lenb-i]-48; for(int i=1;i<=lens;i++) { if(a[i]<b[i]) { a[i+1]--; a[i]+=10; } s[i]=a[i]-b[i]; } while(!s[lens]&&lens>1) lens--; for(int i=lens;i>=1;i--) cout<<s[i],s[i]=0; cout<<'\n'; for(int i=1;i<=lena;i++) a[i]=a1[lena-i]-48; for(int i=1;i<=lenb;i++) b[i]=b1[lenb-i]-48; lens=lena+lenb; for(int i=1;i<=lena;i++) { for(int j=1;j<=lenb;j++) { s[i+j-1]+=(a[i]*b[j]); if(s[i+j-1]>=10) { s[i+j]+=(s[i+j-1]/10); s[i+j-1]%=10; } } } while(!s[lens]&&lens>1) lens--; for(int i=lens;i>=1;i--) cout<<s[i]; return 0; }