Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
173686 B班 李文乐 高精度乘法 C++ 无测评数据 0 0 MS 0 KB 1195 2024-08-21 07:43:38

Tests(0/0):


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