Статья Автор: Деникина Н.В., Деникин А.В.

Длинное вычитание

Когда вычитаемых несколько

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

Каждое вычитание портит запись от своего разряда вверх — до ближайшей ненулевой цифры. Выше неё запись остаётся нетронутой.

Нули уцелеют только там, куда заём не дошёл.


Порядок действий

Приводим слагаемые к степеням основания записи и выписываем, какой коэффициент на каком разряде стоит.

Дальше идём снизу вверх и смотрим, откуда каждое вычитание займёт единицу. Промежуток между местом вычитания и донором заполняется цифрами p − 1.

Свободное число в конце переводится отдельно: 1550 в семеричной — это 4343.

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

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


Пример

Значение выражения 3431515 − 6 · 491520 + 5 · 491510 − 3 · 71530 − 1550 записали в системе счисления с основанием 7. Определите количество значащих нулей в этой записи.

Приводим: 3431515 = 74545, 491520 = 73040, 491510 = 73020.

Сверху 74545 − 6 · 73040: заём тянет шестёрки от разряда 4544 вниз, а в разряде 3040 остаётся единица.

Ниже неё пусто до разряда 3021, а в разряде 3020 стоит пятёрка от третьего слагаемого. Вот эти нули и уцелели.

Всё, что ниже пятёрки, заём от двух последних вычитаний забивает шестёрками.

Нули с 3039 по 3021 — девятнадцать штук.



Что печатает программа
4545
19

4545 цифр и девятнадцать нулей. Совпало с разбором.


Проверь себя


Сколько нулей в семеричной записи числа \(7^{20} - 7^{10}\)?

Ловушки

  • Посчитали нули только в верхней части и забыли младшие разряды.
  • Не заметили, что плюс посреди выражения возвращает ненулевую цифру и обрывает заём.
  • Перевели свободное число в уме и ошиблись в младших разрядах.
  • Сочли значащими только те нули, что идут подряд.
Печать