Более распространенной операцией сложения является операция “Длинное + длинное”. Если имеем дело с частным случаем, когда одно из слагаемых является длинным числом, а второе строго меньше основания системы счисления (<osn), т.е. является цифрой, то в целях оптимизации и ускорения работы программы следует подумать над более быстрой реализацией.
Представляю свою реализацию:
                - BigInt operator + (const BigInt &a, const int &b) 
           - { 
           -   BigInt res = a; 
           -   int pos = 0; 
           -   res.digits[0] += b; 
           -   while (res.digits[pos]>=osn) 
           -   { 
           -     res.digits[pos+1]++; 
           -     res.digits[pos++]-=osn; 
           -   } 
           -   if (res.digits[res.amount]) 
           -     res.amount++; 
           -   return res; 
           - } 
        
     * This source code was highlighted with Source Code Highlighter.  Практически идентичную реализацию имеет и операция “длинное – короткое”.
Этот комментарий был удален автором.
ОтветитьУдалитьоператор + принимает два аргумента - два слагаемых. То о чем вы говорите скорее всего это реализация знака +, реализованного внутри структуры/класса, где требуется указать только второй аргумент(слагаемое). Так что здесь никакой ошибки нет
Удалить