C++实现:解决千位级正整数相除求商与余数的难题
以下是一个用 C++ 实现求两个大整数之商和余数的示例代码: ```cpp #include <iostream> #include <string> #include <vector> // 将字符串表示的大整数转换为数字向量 std::vector<int> strToDigits(const std::string& str) { std::vector<int> digits; for (char c : str) { digits.push_back(c - '0'); } return digits; } // 实现大整数除法 void divideBigIntegers(const std::string& num1, const std::string& num2) { std::vector<int> dividend = strToDigits(num1); std::vector<int> divisor = strToDigits(num2); std::vector<int> quotient; std::vector<int> remainder = dividend; int carry = 0; while (true) { if (remainder.size() < divisor.size()) { break; } int numDigits = divisor.size(); int current = 0; for (int i = 0; i < numDigits; ++i) { current = current * 10 + remainder[i]; } int q = current / divisor[0]; quotient.push_back(q); std::vector<int> product; for (int i = 0; i < numDigits; ++i) { product.push_back(q * divisor[i]); } for (int i = 0; i < numDigits; ++i) { remainder[i] -= product[i]; if (remainder[i] < 0) { remainder[i] += 10; remainder[i + 1]--; } } while (remainder.size() > 0 && remainder[0] == 0) { remainder.erase(remainder.begin()); } } // 输出商 for (int digit : quotient) { std::cout << digit; } std::cout << std::endl; // 输出余数 for (int digit : remainder) { std::cout << digit; } std::cout << std::endl; } int main() { std::string num1, num2; std::cin >> num1 >> num2; divideBigIntegers(num1, num2); return 0; } ``` 额外需要注意的逻辑点: 1. 处理输入的大整数时,要确保输入的格式正确。 2. 在进行除法运算时,注意边界情况和溢出处理。 3. 对于大整数的存储和运算,要考虑效率和内存使用。 ######[AI写代码神器 | 637点数解答 | 2025-03-09 13:55:32]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)371
- 【C++题解】P10840 星际能量分配:高精度除以低精度算法详解(DeepSeek | 1165点数解答 | 2026-04-10 21:10:07)16
- 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
- 破解Jenkins构建Java项目“数据收集等待过长”难题的实用攻略( | 389点数解答 | 2024-01-18 09:27:30)340
- Jenkins 构建 Java 项目“数据收集等待过长”难题的 10 大解决策略(百度文心 | 551点数解答 | 2024-01-18 09:27:54)297
- C++ 求解整数减少至 0 使奇数次数最少的最小纠结次数问题(字节豆包 | 229点数解答 | 2024-08-21 16:33:58)270
- C++ 实现按复杂规则计算业务员工资,附完整代码!(字节豆包 | 337点数解答 | 2024-11-18 17:48:36)296
- C++ 实现:求解二进制字符串中消除连续 m 个 0 的最少操作次数(GPT | 876点数解答 | 2024-11-30 23:07:54)223
- 奇幻游戏积分排序:奇数升序偶数降序,Python代码轻松搞定!(DeepSeek | 233点数解答 | 2025-04-12 17:08:17)222
- C++实现奇幻游戏积分排序:奇数升序偶数降序!(DeepSeek | 237点数解答 | 2025-04-12 17:09:06)237