Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168686 | 詹钧尧 | 高精度乘法 | C++ | 通过 | 100 | 0 MS | 264 KB | 767 | 2024-08-20 13:11:38 |
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> using namespace std; const int maxn =( 1e3 *5)+5; char a1[maxn], b1[maxn]; int a[maxn], b[maxn], c[2 * maxn]; int main() { gets(a1); gets(b1); int la = strlen(a1), lb = strlen(b1); for(int i = 0; i < la; ++i) a[i] = a1[la - i - 1] - '0'; for(int i = 0; i < lb; ++i) b[i] = b1[lb - i - 1] - '0'; for(int i = 0; i < la; ++i) { for(int j = 0; j < lb; ++j) { c[i + j] += a[i] * b[j]; c[i + j + 1] += c[i + j] / 10; c[i + j] %= 10; } } int lc = la + lb; while(c[lc] == 0 && lc > 0) lc--; for(int i = lc; i >= 0; --i) printf("%d", c[i]); printf("\n"); return 0; }