Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168325 | 邓永杰 | 高精度乘法 | C++ | 解答错误 | 10 | 1 MS | 284 KB | 628 | 2024-08-20 09:40:40 |
#include <bits/stdc++.h> using namespace std; int main() { char a[101],b[101]; int a1[101],b1[101],c[10001],na,nb,nc,x; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); cin>>a>>b; na=strlen(a); nb=strlen(b); for(int i=0;i<=na-1;i++){ a[na-i]=a[i]-48; } for(int i=0;i<=nb-1;i++){ a[nb-i]=a[i]-48; } for(int i=1;i<=na;i++){ x=0; for(int j=1;j<=nb;j++){ c[i+j-1]=a[i]*b[j]+x+c[i+j-1]; x=c[i+j-1]/10; c[i+j-1]%10; } c[i+nb]=x; } nc=na+nb; while(c[nc]==0&&nc>1){ nc--; } for(int i=nc;i>=1;i--){ cout<<c[i]; } cout<<endl; return 0; }