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