高精度除法

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



vector<int> mut(vector<int> A,int a){
    int t = 0;  //记录余数
    vector<int> C;
    for(int i = A.size()-1;i>=0;i--){
        //C.push_back((A[i]+t*10)/a);
        C.push_back((A[i]+t*10)/a);
        t = (A[i]+t*10)%a;
    }
    C.push_back(t);
    //还是要去首位的零啊
    //while(*(C.begin()) == 0) C.begin() = C.begin()+1;
    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');
    vector<int> C;
    C = mut(A,b);
    vector<int>::iterator it = C.begin();
    while(it != C.end()-2  && *it == 0){
        it++;
    }
    //输出
    while(it != C.end()-1){
        cout<<*it;
        it++;
    }

    cout<<endl;
    cout<<C[C.size()-1];

    return 0;
}

posted @ 2020-10-18 19:58  secx  阅读(65)  评论(0)    收藏  举报