Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173590 | B班-陈曦 | 高精度乘法 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 690 | 2024-08-20 21:51:52 |
#include <bits/stdc++.h> using namespace std; char s1[5001],s2[5001]; int a[5001],b[5001],c[5001]; void Mul(int a[],int b[],int m,int n) { for(int i=0;i<n;++i) { for(int j=m-1;j>=0;--j) c[j+i]+=b[i]*a[j]; for(int k=0;c[k]>=0;++k){ c[k+1]+=c[k]/10; c[k]%=10; } } } void Init(int x[],char str[],int len) { for(int i=0; i<len; i++) x[len-i-1]=str[i]-'0'; } void Output(int ans[]) { int i=5001-1; for(; ans[i]==0 && i>0; --i); for(; i>=0; --i) cout<<ans[i]; } int main() { cin>>s1>>s2; int m=strlen(s1); int n=strlen(s2); Init(a,s1,m); Init(b,s2,n); Mul(a,b,m,n); Output(c); return 0; }