Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173686 | B班 李文乐 | 高精度乘法 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 1195 | 2024-08-21 07:43:38 |
#include <iostream> #include <cstring> void mul(char a[], char b[], char r[]) { // 修改函数名为 mul int l1 = strlen(a); int l2 = strlen(b); int res[10001] = {0}; // 用于存储乘法结果 for (int i = l1 - 1; i >= 0; i--) { for (int j = l2 - 1; j >= 0; j--) { int d1 = a[i] - '0'; // 修改变量名为 d1 int d2 = b[j] - '0'; // 修改变量名为 d2 int p = d1 * d2; // 修改变量名为 p int p1 = i + j; int p2 = i + j + 1; p += res[p2]; res[p2] = p % 10; res[p1] += p / 10; } } int s = 0; // 修改变量名为 s while (s < 10000 && res[s] == 0) { s++; } if (s == 10000) { r[0] = '0'; r[1] = '\0'; } else { int ind = 0; // 修改变量名为 ind for (int i = s; i < 10000; i++) { r[ind++] = res[i] + '0'; } r[ind] = '\0'; } } int main() { char n1[5001], n2[5001], re[10001]; // 修改变量名为 n1、n2、re std::cin >> n1 >> n2; mul(n1, n2, re); std::cout << re << std::endl; return 0; }