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;
}
相关推荐
c++之路4 小时前
C++信号处理
开发语言·c++·信号处理
故事还在继续吗6 小时前
C++20关键特性
开发语言·c++·c++20
青少儿编程课堂6 小时前
2026青少儿信息素养大赛备赛指南!Python/Scratch/C++备考要点
开发语言·c++·python
旖-旎6 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
AIFarmer7 小时前
【无标题】
开发语言·c++·算法
John_ToDebug7 小时前
WebHostView 与 TabStrip 交互机制深度解析
c++·chrome·windows
南境十里·墨染春水8 小时前
C++笔记 STL——set
开发语言·c++·笔记
dgaf8 小时前
DX12 快速教程(17) —— 立体图标与合并渲染
c语言·c++·3d·图形渲染·d3d12
charlie11451419111 小时前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32
用户8055336980311 小时前
现代Qt开发教程(新手篇)1.10——进程
c++·qt