C++中的大数运算
大数是指数据量比较大的数,其数据长度可达106
#include <iostream>
#include <vector>
#include <algorithm>
//高精度问题存在C++中 python和Java中不涉及
using namespace std;
//引用可以避免 A B被复制而占用的时间
bool cmp( vector<int> &A, vector<int> &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<int> add(vector<int> &A, vector<int> &B);
vector<int> sub(vector<int> &A, vector<int> &B);
vector<int> mul(vector<int> &A, int b);//此时的 b 是一个小范围的数
vector<int> div(vector<int> &A, int b, int &r);// A/b = C …… r