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;
}
相关推荐
杜子不疼.5 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
石山代码6 小时前
C++ 内存分区 堆区
java·开发语言·c++
张小姐的猫8 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
做人求其滴11 小时前
面试经典 150 题 380 274
c++·算法·面试·职场和发展·力扣
见叶之秋11 小时前
C++基础入门指南
开发语言·c++
计算机安禾11 小时前
【c++面向对象编程】第42篇:模板特化与偏特化:为特定类型定制实现
开发语言·c++·算法
玖釉-11 小时前
C++ 中的循环语句详解:while、do...while、for、嵌套循环与循环控制
开发语言·c++·算法
欧米欧12 小时前
C++进阶数据结构之搜索二叉树
开发语言·数据结构·c++
青小莫12 小时前
C++之vector讲解
c++·stl
计算机安禾13 小时前
【c++面向对象编程】第41篇:函数模板与类模板:泛型编程的基石
开发语言·c++·算法