酷代码 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, b1; int la, lb, lc; bool cmp(int a[], int b[], int la, int lb) { if (la != lb) return la < lb; for (int i = la; i >= 1; i--) { if (a[i] != b[i]) return a[i] < b[i]; } return false; } void sub(int a[], int b[], int la, int lb) { for (int i = 1; i <= la; i++) { if (a[i] < b[i]) { a[i + 1]--; a[i] += 10; } a[i] -= b[i]; } while (la > 1 && a[la] == 0) la--; } 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--) { int temp[305] = {0}; for (int j = 1; j <= lb; j++) temp[j + i - 1] = b[j]; while (!cmp(a, temp, la, lb + i - 1)) { sub(a, temp, la, lb + i - 1); c[i]++; while (la > 1 && a[la] == 0) la--; } } while (lc > 1 && c[lc] == 0) lc--; for (int i = lc; i >= 1; i--) cout << c[i]; cout << endl; return 0; } ``` 代码解释: 1. 输入处理:读取两个大整数的字符串 `a1` 和 `b1`,并将其逐位存储到数组 `a` 和 `b` 中。 2. `cmp` 函数:用于比较两个大整数的大小,先比较长度,长度不同时长度短的数小;长度相同时逐位比较。 3. `sub` 函数:实现两个大整数的减法,处理借位情况,并去除结果的前导零。 4. 除法运算: - 确定商的最大可能长度 `lc`。 - 从最高位开始尝试每一位商的值,通过不断用被除数减去除数的倍数,同时记录商的对应位的值。 5. 输出结果:去除商的前导零后,按从高位到低位的顺序输出商。 [2025-09-20 10:54:17 | AI问答 | 719点数解答]

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