воскресенье, 5 сентября 2010 г.

Длинное - короткое

[Вся длинная арифметика]

До того момента, пока не столкнулся с извлечением квадратного корня из длинного числа, был уверен, что реализация этой операции не будет иметь никакого практического значения. Но я ошибался.

Приведенная реализация практически идентична с  реализацией операции “длинное + короткое”:
  1. BigInt operator - (const BigInt &a, const int &b)
  2. {
  3.   BigInt res = a;
  4.   int pos = 0;
  5.   res.digits[0] -= b;
  6.   while (res.digits[pos] < 0)
  7.   {
  8.     res.digits[pos+1] --;
  9.     res.digits[pos++] +=osn;
  10.   }
  11.   if (res.amount && !res.digits[res.amount-1])
  12.     res.amount--;
  13.   return res;
  14. }
* This source code was highlighted with Source Code Highlighter.

Комментариев нет:

Отправить комментарий