Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168225 | 徐启善(C班) | 高精度乘法 | C++ | 运行出错 | 0 | 1 MS | 296 KB | 873 | 2024-08-20 08:25:40 |
#include <bits/stdc++.h> using namespace std; const int len = 1e4 + 10; int a[len],b[len],res[len * 2]; void my_scanf(int a[]){ memset(a,0,sizeof(int) * len * 2); string s; cin >> s; for(int i = 0,j = s.size() - 1;i < s.size();i++,j--){ a[j] = s[i] - '0'; } } void mul(int a[],int b[],int res[]){ memset(res,0,sizeof(int) * len * 2); for(int i = 0;i < len;i++){ for(int j = 0;j < len;j++){ res[i + j] += a[i] * b[j]; if(res[i + j] >= 10){ res[i + j + 1] += res[i + j] / 10; res[i + j] %= 10; } } } } void my_printf(int res[]){ int pos = len - 1; while(pos > 0 && res[pos] == 0){ pos--; } for(int i = pos;i >= 0;i--){ cout << res[i]; } } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); my_scanf(a); my_scanf(b); mul(a,b,res); my_printf(res); return 0; }