07| 高精度除法

一、核心思路

此问题要解决高精度除低精度,高精度用字符串存储,按位存储到数组中,模拟列竖式除法。

二、代码实现

cpp 复制代码
const int N = 5010;
int a[N], b, c[N];
int l;

void div(int a[], int b, int c[]) {
    ll tmp = 0;
    // 从大整数的高位到低位处理
    for (int i = l; i >= 1; i--) {
        tmp = tmp * 10 + a[i];
        c[i] = tmp / b;
        tmp = tmp % b;
    }
    // 处理商的前导零
    while (l > 1 && c[l] == 0) l--;
}

int main() {
    string s;
    cin >> s >> b;
    // 反转字符串,便于从低位到高位存储
    reverse(s.begin(), s.end());
    l = s.size();
    // 将字符串逐位存入数组a
    for (int i = 1; i <= l; i++) {
        a[i] = s[i-1] - '0';
    }
    div(a, b, c);
    // 输出商(从高位到低位)
    for (int i = l; i >= 1; i--) {
        cout << c[i];
    }
    return 0;
}
相关推荐
dapeng28705 小时前
多协议网络库设计
开发语言·c++·算法
阿猿收手吧!6 小时前
【C++】建造者与代理模式实战解析
开发语言·c++·代理模式
2501_945424806 小时前
C++跨平台开发实战
开发语言·c++·算法
John_ToDebug6 小时前
死锁案例:UI 线程阻塞等待跨进程 COM 注入
c++·windows·笔记
煤球王子6 小时前
学而时习之:C++中的预处理
c++
码界奇点6 小时前
基于模块化架构的Unity游戏开发框架设计与实现
java·c++·unity·架构·毕业设计·源代码管理
阿贾克斯的黎明7 小时前
Drogon 框架完全指南:C++ 后端开发的新选择
开发语言·c++
凯子坚持 c7 小时前
基于C++构建DeepSeek大模型推理SDK:从架构设计到工程落地
java·数据库·c++
郝学胜-神的一滴7 小时前
C++备忘录模式:优雅实现对象状态保存与恢复
开发语言·c++·程序人生·备忘录模式
星河耀银海7 小时前
C++ 异常处理机制:异常捕获、自定义异常与实战应用
android·java·c++