Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
105466 | 陈志轩 | 高精度乘法 | C++ | 输出超限 | 86 | 17 MS | 332 KB | 890 | 2023-10-06 18:06:59 |
#include<bits/stdc++.h> using namespace std; int a[5005] = {0},b[5005] = {0},c[5005] = {0}; int main(){ string x,y; cin>>x>>y; int xs = x.size(); int ys = y.size(); for (int i = xs - 1;i >= 0;i--){ a[i] = x[xs - i - 1] - 48; } for (int i = ys - 1;i >= 0;i--){ b[i] = y[ys - i - 1] - 48; } int o = 0,maxl = 4514; for (int i = 0;i < maxl;i++){ for (int j = 0;j < maxl;j++){ if (i + j < maxl){ c[i + j] += a[i] * b[j]; if (c[i + j] >= 10){ c[i + j + 1] += c[i + j] / 10; c[i + j] %= 10; } } } } maxl--; while (c[maxl] == 0 && maxl >= 0){ maxl--; } if (maxl == -1){ cout<<0<<endl; return 0; } for (int i = maxl;i >= 0;i--){ cout<<c[i]; } return 0; }