高精度除法

高精度除法

给定两个非负整数 A,B,请你计算 A/B 的商和余数。

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

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

数据范围
1≤A的长度≤100000,
1≤B≤10000,
B 一定不为 0
输入样例:

7
2

输出样例:

3
1

代码:

#include
#include
#include

using namespace std;

vector div(vector &A,int b,int &r){
    vector c;
    r = 0;
    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 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; 

}

你可能感兴趣的:(数据结构,c语言,c++)