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;
}
相关推荐
c2385618 分钟前
《枚举算法 “翻译官”:用 enum class 给 “游游的礼盒” 算分》
c语言·c++·算法
noipp24 分钟前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu
鱼子星_42 分钟前
《算 · 法》题目解析篇(1):最近公共祖先问题,线段树,最长回文子序列
c++·算法·动态规划·递归
计算机内卷的N天2 小时前
CMake与Visual Studio的使用
c++·ide·visual studio
汉克老师3 小时前
GESP2026年3月认证C++七级( 第三部分编程题(1、物流网络))精讲
c++·最短路·gesp7级
鱼子星_3 小时前
【C++】深入剖析list:list及其双向迭代器实现
开发语言·数据结构·c++·笔记·stl·list
tudousisi2223 小时前
P4667 [BalticOI 2011] Switch the Lamp On复盘
c++
江屿风4 小时前
【C++笔记】【二叉搜索树】流食般投喂
开发语言·数据结构·c++·笔记
海绵天哥5 小时前
LeetCode Hot 100 | 链表(下)· 分组翻转与设计(C++ 题解)
c++·leetcode·链表