№ 14 (другой тип)

Шаблон решения

Условие

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

Теория

📝 Чтобы перевести число из десятичной системы счисления в n-ричную, нужно делить исходное число на нацело, пока оно не станет равным нулю. Выписав полученные остатки в обратном порядке, мы получим искомое представление числа в n-ричной системе счисления.

❓ Переведём 2510 в двоичную систему счисления:

Делим 2510 на основание системы счисления в которую переводим (2), до тех пор, пока не получим ноль.

  1. 25 / 2 = 12, остаток: 1.
  2. 12 / 2 = 6, остаток: 0.
  3. 6 / 2 = 3, остаток: 0.
  4. 3 / 2 = 1, остаток: 1.
  5. 1 / 2 = 0, остаток: 1 (заканчиваем делить, так как частное равно 0).

Выписываем остатки снизу вверх: 110012 — это и будет двоичная запись числа 2510.

Ответ: 2510 = 110012.

❓ Переведём 19010 в восьмеричную систему счисления:

Делим 19010 на основание системы счисления в которую переводим (8), до тех пор, пока не получим ноль.

  1. 190 / 8 = 23, остаток: 6.
  2. 23 / 8 = 2, остаток: 7.
  3. 2 / 8 = 0, остаток: (заканчиваем делить, так как частное равно 0).

Выписываем остатки снизу вверх: 2768 — это и будет восьмеричная запись числа 19010.

Ответ: 19010 = 2768.

Решение задачи

В задаче нам нужно перевести 3431515 – 6 · 491520 + 5 · 491510 – 3 · 71530 – 1550 в семеричную систему счисления. Значит мы будем делить нацело 3431515 – 6 · 491520 + 5 · 491510 – 3 · 71530 – 1550 на 7, пока не получим ноль. Полученные остатки от деления на 7 – это цифры семеричной записи нашего числа.

x = 343**1515 - 6*49**1520 + 5*49**1510 - 3*7**1530 - 1550
base = 7
while x != 0:
    last_d = x % base
    x = x // base # Делим нацело, две палочки!

В переменной last_d на первой итерации цикла будет последняя цифра семеричной записи нашего числа, на второй итерации цикла – предпоследняя, на третьей – пред предпоследняя… На последней итерации цикла – первая цифра.

Все цифры семеричной записи мы получили. Осталось посчитать количество нулей среди них. Заведём переменную count, в ней мы будем насчитывать количество нулей в семеричной записи.

x = 343**1515 - 6*49**1520 + 5*49**1510 - 3*7**1530 - 1550
base = 7
count = 0 # В этой переменной будем насчитывать количество нулей в семеричной записи числа x
while x != 0:
    last_d = x % base
    x = x // base
    if last_d == 0: # Если встретили цифру ноль
        count += 1  # То увеличиваем счётчик
print(count) # Выводим количество нулей в семеричной записи числа x

Запускаем программу:

19

Получили ответ 19.

Тренировка


(Демо 2022) Значение арифметического выражения

3 · 438 + 2 · 423 + 420 + 3 · 45 + 2 · 44 + 1

записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?


(Досрок 2021) Значение арифметического выражения

7 · 512120 – 6 · 64100 + 8210 – 255

записали в системе счисления с основанием 8. Сколько цифр 0 содержится в этой записи?


(ЕГЭ 2022) Значение арифметического выражения

4 · 6251920 + 4 · 1251930 – 4 · 251940 – 3 · 51950 – 1960

записали в системе счисления с основанием 5. Определите количество значащих нулей в записи этого числа.


(Досрок 2022) Значение арифметического выражения

7 · 5121912 + 6 · 641954 – 5 · 81991 – 4 · 81980 – 2022

записали в системе счисления с основанием 8. Определите количество цифр 7 в записи этого числа. 


Сколько различных цифр в шестнадцатеричной записи числа 251 + 240 + 235 + 217 – 25?


Значение арифметического выражения: 917 + 316 – 27 записали в системе счисления с основанием 3. Какая из цифр чаще всего встречается в полученном числе? В ответе укажите, сколько таких цифр в этой записи

Обновлено: Февраль 2, 2024 — 12:12 пп

Добавить комментарий