酷代码 AI
菜单
服务商

#include<iostream> using namespace std; int a[305],b[305],c[305]; string a1,b2; int la,lb,lc; int main(){ cin>>a1>>b1; la=a1.size(); lb=b1.size(); for(int i=0;i<la;i++){ a[la-i]=a1[i]-'0'; } for(int i=0;i<lb;i++){ b[lb-i]=b1[i]-'0'; } lc=la+lb+1; for(int i=lc;i>=1;i--){ } } c++ 要加using namespace std; 不要注释 改成高精度减法

```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. 输出结果:如果结果为负数,先输出负号,然后按顺序输出结果的每一位。 [2025-09-20 10:52:09 | AI问答 | 616点数解答]

相关提问
请收藏新域名:pdcd.cn
发财导航,免费问AI
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]