C++ 实现超 1000 位正整数除法与取余:代码示例及注意要点
以下是使用 C++ 解决此问题的示例代码: ```cpp #include <iostream> #include <string> // 将字符串表示的大整数转换为整数数组 void strToIntArray(const std::string& str, int* num) { for (size_t i = 0; i < str.size(); ++i) { num[i] = str[str.size() - 1 - i] - '0'; } } // 模拟大整数除法 void divideLargeNumbers(const std::string& num1Str, const std::string& num2Str) { int num1[1001] = {0}, num2[1001] = {0}; int len1 = num1Str.size(), len2 = num2Str.size(); strToIntArray(num1Str, num1); strToIntArray(num2Str, num2); int quotient[1001] = {0}, remainder[1001] = {0}; int ptr1 = len1 - 1, ptr2 = len2 - 1; // 计算商 while (ptr1 >= 0) { int carry = 0; for (int i = ptr2; i >= 0; --i) { int temp = num1[ptr1 - (ptr2 - i)] * num2[i] + carry; carry = temp / 10; temp %= 10; num1[ptr1 - (ptr2 - i)] = temp; } quotient[ptr1 - len2 + 1] += carry; --ptr1; } // 计算余数 for (int i = 0; i < len2; ++i) { remainder[i] = num1[i]; } // 输出商 bool start = false; for (int i = 1000; i >= 0; --i) { if (quotient[i]!= 0) { start = true; } if (start) { std::cout << quotient[i]; } } std::cout << std::endl; // 输出余数 start = false; for (int i = len2 - 1; i >= 0; --i) { if (remainder[i]!= 0) { start = true; } if (start) { std::cout << remainder[i]; } } std::cout << std::endl; } int main() { std::string num1, num2; std::cin >> num1 >> num2; divideLargeNumbers(num1, num2); return 0; } ``` 额外需要注意的逻辑点: 1. 处理输入字符串的长度和边界情况。 2. 确保除法和取余的计算准确性。 3. 优化代码的时间和空间复杂度。 ######[AI写代码神器 | 695点数解答 | 2025-03-03 20:30:06]
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)55
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)371
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)211
- 数值与字典序:999 与 1000 大小比较的不同答案(字节豆包 | 141点数解答 | 2025-03-23 22:06:18)246
- Three.js 示例代码解析:优化场景渲染与注意要点(字节豆包 | 164点数解答 | 2025-02-27 23:30:20)283
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)286
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)285
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)342
- C++ 实现查找指定数字在正整数序列中的位置(字节豆包 | 398点数解答 | 2026-04-11 13:08:06)25
- C++ 实现统计指定数字在数组中出现的次数(字节豆包 | 377点数解答 | 2026-04-11 13:09:11)24
- C++ 助力公园园长解决旧桥木板替换难题:计算最少木板数量(字节豆包 | 140点数解答 | 2024-11-18 20:33:37)221
- C++ 实现根据部分橘子重量估算整箱橘子重量(字节豆包 | 371点数解答 | 2026-04-11 13:12:51)16