C++ 实现:求解两个 1000 位以内正整数的商和余数
以下是一个用 C++ 实现求两个大正整数之商和余数的示例代码: ```cpp #include <iostream> #include <string> // 将字符串表示的大整数转换为整数数组 void stringToIntArray(const std::string& numStr, int numArray[]) { for (size_t i = 0; i < numStr.size(); ++i) { numArray[i] = numStr[numStr.size() - 1 - i] - '0'; } } // 实现大整数除法 void divideLargeNumbers(const std::string& num1Str, const std::string& num2Str) { int num1[1001] = {0}; int num2[1001] = {0}; stringToIntArray(num1Str, num1); stringToIntArray(num2Str, num2); int quotient[1001] = {0}; int remainder[1001] = {0}; int len1 = num1Str.size(); int len2 = num2Str.size(); int borrow = 0; for (int i = len1 - len2; i >= 0; --i) { int temp = 0; while ((temp = (num1[i + len2] * 10 + num1[i + len2 - 1]) / num2[len2 - 1]) >= 0) { --temp; } ++temp; quotient[i] = temp; for (int j = 0; j < len2; ++j) { int sub = num1[i + j] - quotient[i] * num2[j] - borrow; if (sub < 0) { sub += 10; borrow = 1; } else { borrow = 0; } num1[i + j] = sub; } } // 输出商 bool isLeadingZero = true; for (int i = len1 - len2; i >= 0; --i) { if (quotient[i]!= 0) { isLeadingZero = false; } if (!isLeadingZero) { std::cout << quotient[i]; } } std::cout << std::endl; // 输出余数 int start = 0; while (num1[start] == 0 && start < len1 - len2) { ++start; } for (int i = start; i < len1 - len2; ++i) { std::cout << num1[i]; } std::cout << std::endl; } int main() { std::string num1, num2; std::cin >> num1 >> num2; divideLargeNumbers(num1, num2); return 0; } ``` 额外注意逻辑点: 1. 处理输入字符串时要注意边界情况,如空字符串。 2. 大整数除法过程中要正确处理借位和进位。 3. 输出结果时要注意格式,确保清晰可读。 ######[AI写代码神器 | 743点数解答 | 2025-03-01 14:38:28]
- 【C++题解】P10840 星际能量分配:高精度除以低精度算法详解(DeepSeek | 1165点数解答 | 2026-04-10 21:10:07)16
- 洛谷:根据邮件重量与加急情况精准计算邮费(字节豆包 | 88点数解答 | 2024-11-09 15:33:30)420
- Python实现:根据邮件重量与加急选择精准计算邮费(阿里通义 | 554点数解答 | 2024-11-09 15:34:05)427
- 邮件邮费计算:依据重量与加急要求输出邮费(GPT | 45点数解答 | 2024-12-16 22:26:01)371
- 邮件重量与加急选择决定邮费,附计算规则及示例(GPT | 38点数解答 | 2024-12-16 22:27:37)296
- Python 实现:根据重量与加急选项精准计算邮费及输入合法性处理(字节豆包 | 244点数解答 | 2024-12-31 19:36:29)320
- C++ 实现:按顺序存储并输出战力 1 - 10 守卫数量(DeepSeek | 130点数解答 | 2026-01-17 14:11:22)67
- C++实现按战力顺序输出守卫数量(字节豆包 | 185点数解答 | 2026-02-25 22:33:20)40
- C++实现按战力顺序输出守卫数量(字节豆包 | 497点数解答 | 2026-03-20 20:01:06)17
- 小核桃存储守卫战力数量的Python程序实现(字节豆包 | 150点数解答 | 2026-04-03 19:47:58)21
- 使用C++实现存储守卫战力并按顺序输出的程序(字节豆包 | 224点数解答 | 2026-04-12 19:13:22)13
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)371