我是靠谱客的博主 正直酸奶,最近开发中收集的这篇文章主要介绍【ACWing】794. 高精度除法题目地址:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目地址:

https://www.acwing.com/problem/content/796/

给定两个非负整数 A A A B B B,求 A / B A/B A/B

输入格式:
共两行,第一行包含整数 A A A,第二行包含整数 B B B

输出格式:
共两行,第一行输出所求的商,第二行输出所求余数。

数据范围:
1 ≤ l A ≤ 100000 1le l_Ale 100000 1lA100000
1 ≤ B ≤ 10000 1le Ble 10000 1B10000

高精度除法。代码如下:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

// 返回商,并更新r为余数
vector<int> div(vector<int>& A, int b, int& r) {
    vector<int> C;
    r = 0;
    // A是将一个整数逆序存储的,所以其最高位是最后一位,要以从最高位到最低位的次序计算
    for (int i = A.size() - 1; i >= 0; i--) {
        r = r * 10 + A[i];
        C.push_back(r / b);
        r %= b;
    }

    reverse(C.begin(), C.end());
    while (C.size() > 1 && C.back() == 0) C.pop_back();

    return C;
}

int main() {
    string a;
    int b;

    cin >> a >> b;
    
    vector<int> A;
    for (int i = a.size() - 1; i >= 0; i--)  A.push_back(a[i] - '0');

    int r;
    auto C = div(A, b, r);
    for (int i = C.size() - 1; i >= 0; i--) printf("%d", C[i]);
    cout << endl << r << endl;

    return 0;
}

时空复杂度 O ( l A ) O(l_A) O(lA)

最后

以上就是正直酸奶为你收集整理的【ACWing】794. 高精度除法题目地址:的全部内容,希望文章能够帮你解决【ACWing】794. 高精度除法题目地址:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部