Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168280 | C班陈彦宏 | 高精度乘法 | C++ | 解答错误 | 3 | 1 MS | 316 KB | 949 | 2024-08-20 09:17:00 |
#include <bits/stdc++.h> using namespace std; const int MAXN=5001; void c(int a[],int b[],int ans[],int sum) { for(int j=0; j<sum; ++j) { ans[j]+=a[j]+b[j]; for(int i=j; ans[i]>=10; ++i) { ans[i+1]++; ans[i]-=10; } } } void Init(int a[],string str, int sum) { for(int i=0; i<sum; i++) a[sum-i-1]=str[i]-'0'; } void Output(int ans[]) { int i=MAXN-1; for(; ans[i]==0 && i>0; i--); for(; i>=0; i--) printf("%d",ans[i]); printf("\n"); } int main() { int a[MAXN]= {0},b[MAXN]= {0},ans[MAXN]= {0}; string str1,str2; cin>>str1>>str2; int la=str1.size(); int lb=str2.size(); Init(a,str1,la); Init(b,str2,lb); c(a,b,ans,la>=lb?la:lb); Output(ans); return 0; }