Advertisement
Guest User

Untitled

a guest
Oct 6th, 2015
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <cstdio>
  2.  
  3. class BigInt {
  4.     unsigned char *data;
  5.     int bound;
  6. public:
  7.     BigInt(){
  8.         data = new unsigned char[1024];
  9.         bound = 0;
  10.     }
  11.     ~BigInt(){
  12.         delete [] data;
  13.     }
  14.     void setFromInt(int value){
  15.         bound = 0;
  16.         while(value>0){
  17.             data[bound++] = value % 100;
  18.             value /= 100;
  19.         }      
  20.     }
  21.     void print(){
  22.         for(int i=bound-1;i>=0;i--){
  23.             if(data[i]<10 && i!=bound-1){
  24.                 printf("0%i", data[i]);
  25.             }else{
  26.                 printf("%i", data[i]);
  27.             }
  28.         }
  29.     }
  30.     void add(BigInt &other){       
  31.         int reminder = 0;
  32.         int i;
  33.         for(i=0;i<other.bound;i++){
  34.             data[i] += other.data[i] + reminder;
  35.             reminder = data[i]/100;
  36.             data[i] %= 100;
  37.         }      
  38.         while(reminder>0){
  39.             data[i] += reminder;
  40.             reminder = data[i]/100;
  41.             data[i] %= 100;
  42.             i++;
  43.         }
  44.         bound = i;
  45.     }
  46. };
  47.  
  48. int main(){
  49.     BigInt a, b;
  50.  
  51.     a.setFromInt(1231231231);
  52.     b.setFromInt(1434562345);
  53.  
  54.     a.print();
  55.     printf("\n");
  56.     b.print();
  57.     printf("\n");
  58.  
  59.     a.add(b);
  60.     a.print();
  61.     printf("\n");
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement