本文共 1647 字,大约阅读时间需要 5 分钟。
vector        add(vector          &A, vector            &B){       vector              C;    int t = 0;        for(int i = 0; i < A.size() || i < B.size(); i++)    {           if(i < A.size()) t += A[i];        if(i < B.size()) t += B[i];        C.push_back(t % 10);        t /= 10;    }        if(t) C.push_back(1);    return C;}                     //判断A B 的大小, 保证函数里面是大的减小的bool cmp(vector        &A, vector          &B){       if(A.size() != B.size()) return A.size() > B.size();        for(int i = A.size() - 1; i >= 0; i--)        if(A[i] != B[i]) return A[i] > B[i];        return true;    }vector            add(vector              &A, vector                &B){       vector                  C; int t = 0; for(int i = 0; i < A.size() ; i++) { t = A[i] - t; if(i < B.size()) t = t - B[i]; C.push_back((t + 10) % 10); if(t < 0) t = 1; else t = 0; } while(C.size() > 1 && C.back() == 0) C.pop_back(); return C;}                                    3.高精度乘低精度
vector        mul(vector          &A, int b){       vector            C;    int t = 0;   for(int i = 0; i < A.size(); i++){          t += b * A[i];       C.push_back(t % 10);       t /= 10;   }    if(t) C.push_back(t);   /*	如果这里b是>10的数, 就写成	while(t){		C.push_back(t % 10);		t /= 10;	}	*/    return C;}               4.高精度除低精度
A除b余rvector        div(vector          &A, int b, int &r){       vector            C;    int t = 0;    for(int i = A.size() - 1; i >= 0; i--){           t *= 10;        t += A[i];        C.push_back(t / b);        t %= b;    }    r = t;    reverse(C.begin(), C.end());    while(C.size() > 1 && C.back() == 0) C.pop_back();     return C;}             转载地址:http://cpihz.baihongyu.com/