Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
168225 徐启善(C班) 高精度乘法 C++ 运行出错 0 1 MS 296 KB 873 2024-08-20 08:25:40

Tests(0/30):


#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; }


测评信息: