Acwing.794.高精度除法

120 阅读1分钟

www.acwing.com/problem/con…

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

int main() {
    string n;
    int num2;
    vector<int> num1, res;
    
    int div(vector<int> &, int, vector<int> &);
    
    cin >> n >> num2;
    
    for(int i = n.size() - 1; i >= 0; i--) num1.push_back(n[i] - '0');
    
    int r = div(num1, num2, res);
    
    reverse(res.begin(), res.end());
    
    while(res.size() > 1 && res.back() == 0) res.pop_back();
    
    for(int i = res.size() - 1; i >= 0; i--) cout << res[i];
    cout << endl;
    
    cout << r << endl;    
    return 0;
} 

int div(vector<int> &num1, int num2, vector<int> &res) {
    int t = 0;
    
    for(int i = num1.size() - 1; i >= 0; i--) {
        t = t * 10 + num1[i];
        res.push_back(t / num2);
        
        t %= num2;
    }
    
    return t;
}