Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168373 | C班-范浩宇 | 高精度乘法 | C++ | 通过 | 100 | 1 MS | 264 KB | 737 | 2024-08-20 10:22:19 |
#include<bits/stdc++.h> using namespace std; string a2,b2; int a[2005],b[2005],c[4000005],x,t; bool f = false; int main() { cin>>a2; cin>>b2; for(int i = 0;i < a2.size();i++) a[i + 1] = a2[a2.size() - i - 1] - 48; for(int i = 0;i < b2.size();i++) b[i + 1] = b2[b2.size() - i - 1] - 48; for(int i = 1;i <= a2.size();i++) { x = 0; for(int j = 1;j <= b2.size();j++) { t = a[i] * b[j]; c[i + j - 1] = t % 10 + x + c[i + j - 1]; x = t / 10; if(c[i + j - 1] >= 10) { x += c[i + j - 1] / 10; c[i + j - 1] %= 10; } } c[i + b2.size()] = x; } for(int i = a2.size() + b2.size();i > 0;i--) { if(c[i] != 0) f = true; if(f || i == 1) cout << c[i]; } return 0; }