C++ 实现高精度减法:从代码剖析到结果输出
```cpp #include <iostream> #include <string> using namespace std; int a[305], b[305], c[305]; string a1, b2; int la, lb, lc; // 比较两个数大小 bool isSmaller(string num1, string num2) { if (num1.length() < num2.length()) return true; if (num1.length() > num2.length()) return false; return num1 < num2; } int main() { cin >> a1 >> b2; la = a1.size(); lb = b2.size(); for (int i = 0; i < la; i++) { a[la - i] = a1[i] - '0'; } for (int i = 0; i < lb; i++) { b[lb - i] = b2[i] - '0'; } bool isNegative = false; if (isSmaller(a1, b2)) { isNegative = true; swap(a, b); swap(la, lb); } for (int i = 1; i <= la; i++) { if (a[i] < b[i]) { a[i + 1]--; a[i] += 10; } c[i] = a[i] - b[i]; } lc = la; while (lc > 1 && c[lc] == 0) lc--; if (isNegative) cout << "-"; for (int i = lc; i >= 1; i--) { cout << c[i]; } cout << endl; return 0; } ``` 代码说明: 1. 输入处理:读取两个大整数的字符串 `a1` 和 `b2`,并将它们逐位存储到数组 `a` 和 `b` 中,存储时将字符串中的字符转换为对应的数字。 2. 大小比较:使用 `isSmaller` 函数比较两个数的大小,如果 `a1` 小于 `b2`,则交换数组 `a` 和 `b` 以及它们的长度 `la` 和 `lb`,并标记结果为负数。 3. 减法运算:逐位相减,若出现不够减的情况,向高位借位。 4. 去除前导零:找到结果的有效长度,去除前导零。 5. 输出结果:如果结果为负数,先输出负号,然后按顺序输出结果的每一位。 ######[AI问答 | 616点数解答 | 2025-09-20 10:52:09]
- 易语言子程序 TriggerCode 代码详解:通配符查找与结果运算(字节豆包 | 607点数解答 | 2026-02-09 11:59:34)35
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- C 语言实现一元稀疏多项式 a=3x^14+2x^8+1 与 b=8x^14–3x^10+10x^6 的表示及基本操作(字节豆包 | 1615点数解答 | 2024-10-18 17:19:15)238
- C 语言:链表实现一元稀疏多项式的建立、销毁、输出及加减运算(字节豆包 | 1939点数解答 | 2024-10-18 17:30:58)226
- C 语言实现:随机式子驱动一元稀疏多项式建立、销毁、运算全解析(字节豆包 | 1842点数解答 | 2024-10-29 08:45:36)177
- C 语言实现一元稀疏多项式:建立、销毁、输出及加减运算全解析(字节豆包 | 1832点数解答 | 2024-10-29 08:49:08)237
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)457
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)354
- 工程师必知:性能分析结果的完整步骤与注意要点(百度文心 | 354点数解答 | 2023-11-09 18:30:48)297
- 编程实现:利用公式计算n=1000时π的值(讯飞星火 | 251点数解答 | 2024-06-24 00:08:16)256
- Python 实现:用函数计算 n=1000 时的 π 值(讯飞星火 | 180点数解答 | 2024-06-24 00:09:03)227