суббота, 21 августа 2010 г.

Длинное – длинное(знаковое вычитание)

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

Рассмотрим случай знакового вычитания, когда вычитаемое может быть больше уменьшаемого.

Если разрабатывать универсальную библиотеку для работы с длинными числами, то конечно нужно предусмотреть логический признак: положительное число или отрицательное. Это повлечет за собой переделку всех операций.

Имея в наличии реализации всех операций в неотрицательных числах можно реализовать их и с учетом знака.

У меня же стоит цель зачесть задачу на сервере проверки).
Ниже приведена логика работы программы на основе ранее разобранных операций сравнения и беззнакового вычитания:
  1. bool isMinus = false;
  2. if (a < b)
  3. {
  4.   c = b - a;
  5.   isMinus = true;
  6. }
  7. else
  8.   c = a - b;
  9. if (isMinus) cout<<"-";
  10. c.output();
* This source code was highlighted with Source Code Highlighter.

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

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