Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
106689 | 梁颢城 | 高精度乘法 | C++ | 通过 | 100 | 0 MS | 264 KB | 561 | 2023-10-14 08:53:50 |
#include<bits/stdc++.h> using namespace std; char a1[50001],b1[50001]; int a[50001],b[50001],i,x,len,j,c[50001]; int main (){ cin >>a1 >>b1; a[0]=strlen(a1);b[0]=strlen(b1); for (i=1;i<=a[0];++i) a[i]=a1[a[0]-i]-'0'; for (i=1;i<=b[0];++i) b[i]=b1[b[0]-i]-'0'; for (i=1;i<=a[0];++i) for(j=1;j<=b[0];++j) c[i+j-1]+=a[i]*b[j]; len=a[0]+b[0]; for (i=1;i<len;++i){ if (c[i]>9){ c[i+1]+=c[i]/10;c[i]%=10; } } while (c[len]==0&&len>1) len--; for (i=len;i>=1;--i) cout <<c[i]; return 0; }