高精度除法

30 阅读1分钟
#include <iostream>  
#include <vector>  
#include <algorithm>  
using namespace std;  
vector<int> div(vector<int> A,int b,int &r){  
vector<int> C;  
for(int i = A.size()-1;i >= 0;i--){  
r = A[i] + r * 10;  
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 x;  
int y;  
cin >> x >> y;  
vector<int> A;  
for(int i = x.size()-1;i >=0;i--) A.push_back(x[i] - '0');  
int r;//余数  
vector<int> C = div(A,y,r);  
for(int i = C.size()-1;i>=0;i--) cout << C[i];  
cout << endl << r;//输出余数  
}