Beispiel #1
0
 BigUnsigned operator+(const BigUnsigned& one) const {
     BigUnsigned res;
     for (int i = 0, x = 0; i < max(len, one.len) + 1; i++) {
         int tmp = d[i] + one.d[i] + x;
         res.d[res.len++] = tmp % 10;
         x = tmp / 10;
     }
     res.Clean();
     return res;
 }
Beispiel #2
0
 BigUnsigned operator*(const BigUnsigned& one) {
     BigUnsigned res;
     res.len = len + one.len;
     for(int i = 0; i < len; i++)
         for(int j = 0; j < one.len; j++)
             res.d[i + j] += d[i] * one.d[j];
     for(int i = 0; i < res.len - 1; i++) {
         res.d[i + 1] += res.d[i] / 10;
         res.d[i] %= 10;
     }
     res.Clean();
     return res;
 }