C++实现高精度除以高精度:换行输出商和余数的完整代码
```cpp #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; // 比较两个大整数的大小 bool cmp(const string& a, const string& b) { if (a.length() != b.length()) return a.length() < b.length(); return a < b; } // 大整数减法 string subtract(string a, string b) { if (a == b) return "0"; if (cmp(a, b)) swap(a, b); string res; int borrow = 0; int i = a.length() - 1, j = b.length() - 1; while (i >= 0 || j >= 0 || borrow) { int x = i >= 0 ? a[i--] - '0' : 0; int y = j >= 0 ? b[j--] - '0' : 0; int diff = x - y - borrow; if (diff < 0) { diff += 10; borrow = 1; } else { borrow = 0; } res.push_back(diff + '0'); } while (res.back() == '0') res.pop_back(); reverse(res.begin(), res.end()); return res; } // 大整数高精度除法 pair<string, string> divide(string dividend, string divisor) { if (divisor == "0") throw invalid_argument("Division by zero"); if (cmp(dividend, divisor)) return {"0", dividend}; string quotient; string remainder; for (int i = 0; i < dividend.length(); i++) { remainder += dividend[i]; int count = 0; while (!cmp(remainder, divisor)) { remainder = subtract(remainder, divisor); count++; } quotient += to_string(count); } // 去除商前面的前导零 int start = 0; while (start < quotient.length() - 1 && quotient[start] == '0') start++; quotient = quotient.substr(start); return {quotient, remainder}; } int main() { string dividend, divisor; cin >> dividend >> divisor; auto result = divide(dividend, divisor); cout << result.first << endl; cout << result.second << endl; return 0; } ``` ######[AI问答 | 579点数解答 | 2025-09-20 10:08:42]
- C++类实现一元二次方程多种解情况判断及求解,附特殊情况处理与精度控制(字节豆包 | 481点数解答 | 2025-03-07 12:49:26)200
- 求解 1 至 n 内第 k 大孤独数:质数与余数的巧妙探寻(字节豆包 | 298点数解答 | 2025-11-10 20:01:57)164
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)352
- C++实现读取数字并输出最小值的代码及解释(字节豆包 | 113点数解答 | 2026-03-20 19:32:56)17
- C++ 实现我的世界基岩版:从简单框架到开发要点揭秘(字节豆包 | 182点数解答 | 2025-02-22 15:53:11)202
- C++ 实现完整斗地主:含洗牌、发牌与手牌展示,可按需扩展!(字节豆包 | 1028点数解答 | 2026-01-10 08:02:37)40
- GESP202503五级:原根判断问题全解析,含代码与复杂度分析(字节豆包 | 668点数解答 | 2026-02-02 17:30:47)30
- GESP202503五级:判断整数a是否为质数p原根的代码实现(字节豆包 | 511点数解答 | 2026-02-03 17:11:00)34
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)323
- 📐 C++ 倒置金字塔图案生成代码详解(百度文心 | 483点数解答 | 2026-03-27 19:19:25)12
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)477
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)363