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;
}
相关推荐
范纹杉想快点毕业3 小时前
嵌入式系统架构之道:告别“意大利面条”,拥抱状态机与事件驱动
java·开发语言·c++·嵌入式硬件·算法·架构·mfc
陳10303 小时前
C++:map和set的使用
开发语言·c++
苏宸啊3 小时前
list底层实现
c++·list
近津薪荼3 小时前
递归专题(4)——两两交换链表中的节点
数据结构·c++·学习·算法·链表
乐观勇敢坚强的老彭3 小时前
c++寒假营day01下午
c++·算法
散峰而望3 小时前
【算法竞赛】树
java·数据结构·c++·算法·leetcode·贪心算法·推荐算法
近津薪荼3 小时前
递归专题(3)——反转链表
数据结构·c++·学习·算法·链表
code monkey.3 小时前
【Linux之旅】Linux 动静态库与 ELF 加载全解析:从制作到底层原理
linux·服务器·c++·动静态库
水饺编程3 小时前
第4章,[标签 Win32] :文本的格式化,等待完善
c语言·c++·windows·visual studio