- struct BigN{
- #define maxlen (1005)
- #define base (10000)
- int len, A[maxlen];
- BigN():len(1){A[0] = 0;}
- BigN(const int x):len(1){A[0] = x;}
- void operator *= (const int x){
- int slid = 0, i;
- for(i = 0;i < len;++i){
- A[i] = A[i] * x + slid;
- slid = A[i] / base;
- A[i] %= base;
- }
- while(slid){
- A[i] = slid;
- slid = A[i] / base;
- A[i++] %= base;
- }
- len = i;
- }
- void operator /= (const int x){
- for(int i = len - 1;i;--i){
- A[i-1] += A[i] % x * base;
- A[i] /= x;
- }
- A[0] /= x;
- while(len > 1 && !A[len - 1])--len;
- }
- bool operator <(const BigN &b){
- if(len != b.len)return len < b.len;
- int i = len - 1;
- while((~i) && A[i] == b.A[i]) --i;
- return A[i] < b.A[i];
- }
- void put(FILE *Fout){
- int i = len - 1;
- fprintf(Fout, "%d", A[i]);
- while(i)
- fprintf(Fout, "%04d", A[--i]);
- }
- };
高精
最新推荐文章于 2024-06-12 10:24:28 发布