Тема 14. Системы счисления

14.01 Арифметические выражения

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела системы счисления
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 41#7623Максимум баллов за задание: 1

Сколько значащих нулей содержится в двоичной записи числа 213 + 410 − 11?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичню систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество нулей при помощи метода count().

# Исходное выражение
a = 2**13 + 4**10 - 11

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества цифр ’0’ в двоичной записи числа
print(s.count(’0’))

Решение руками:

Приведем к общему основанию:

213 + 220 − 11 = 220 + 213 − 11

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

1000...000 +1 000...000− 1011
 ◟--◝◜---◞   ◟---◝◜--◞       2
     20           13

 - 100000010000000000000
----------------------1011---
   100000001111111110101
Ответ: 9

Ошибка.
Попробуйте повторить позже

Задача 42#11541Максимум баллов за задание: 1

Сколько единиц содержится в двоичной записи значения выражения: 24 + 28 + 216  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1

# Исходное выражение
a = 2**4 + 2**8 + 2**16

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))


# Способ 2

# Прямое преобразование числа в двоичную строку с помощью bin()
s = bin(2**4 + 2**8 + 2**16)[2:]

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

Решение руками:

Переведем в систему счисления равную 2 и получим:

10◟00.◝..◜000◞+1 0◟00..◝◜.000◞+1 0◟00.◝..◜000◞= 10◟00.◝..◜000◞10◟00.◝..◜000◞10◟00..◝.0◜00◞
    16         8         4           7       3        4

Итого 3 единицы.

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 43#11561Максимум баллов за задание: 1

Сколько единиц содержится в троичной записи значения выражения: 1313 + 25256 + 43  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count().

# Исходное выражение
n = 13**13 + 25**256 + 4**3

# Переменная для хранения числа в троичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в троичную
while n > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(n % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    n //= 3

# Подсчёт и вывод количества цифр ’1’ в троичной записи числа
print(s.count(’1’))

Ответ: 268

Ошибка.
Попробуйте повторить позже

Задача 44#11562Максимум баллов за задание: 1

Сколько троек содержится в пятеричной записи значения выражения: 21222 + 23244 + 25266  ?

Показать ответ и решение

Решение программой

Для подсчёта количества троек в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество троек при помощи метода count().

# Исходное выражение
n = 21**222 + 23**244 + 25**266

# Переменная для хранения числа в 5-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 5-ричную
while n:
    # Получаем последнюю цифру (остаток от деления на 5) и добавляем её в начало строки
    s = str(n % 5) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 5)
    n //= 5

# Подсчёт и вывод количества цифр ’3’ в 5-ричной записи числа
print(s.count(’3’))

Ответ: 107

Ошибка.
Попробуйте повторить позже

Задача 45#11563Максимум баллов за задание: 1

Сколько значащих нулей содержится в двоичной записи значения выражения: 42020 + 82021 + 162022  ?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество нулей при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 2**4 + 2**8 + 2**16

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
s = bin(2**4 + 2**8 + 2**16)[2:]

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

Решение руками:

1. Представим все слагаемые как степени двойки:

pict

2. Двоичное представление каждого слагаемого:

  • 24040 = 10◟0.◝.◜.0◞
         4040
  • 26063 = 100...0
        ◟6◝0◜63◞
  • 28088 = 100...0
        ◟8◝0◜88◞

3. Сложение в двоичной системе:

10◟0.◝.◜.0◞+1 0◟0.◝.◜.0◞+1 0◟0.◝.◜.0◞= 1  0◟0.◝.◜.0◞  +1  0◟0.◝.◜.0◞  +1 0◟0.◝.◜.0◞
  4040     6063     8088     8088−6063− 1  6063−4040−1    4040

4. Подсчёт значащих нулей:

  • Между первой и второй единицей: 8088− 6063− 1 = 2024  нуля
  • Между второй и третьей единицей: 6063− 4040− 1 = 2022  нуля
  • После третьей единицы: 4040  нулей

Общее количество значащих нулей:

2024+ 2022+ 4040 = 8086

Ответ

|----|
8086--
Ответ: 8086

Ошибка.
Попробуйте повторить позже

Задача 46#11564Максимум баллов за задание: 1

Сколько восьмёрок содержится в девятеричной записи значения выражения: 5257 + 8837 + 413  ?

Показать ответ и решение

Решение программой

Для подсчёта количества восьмёрок в 9-ричной записи числа необходимо написать алгоритм перевода исходного числа в 9-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество восьмёрок при помощи метода count().

# Исходное выражение
n = 5**257 + 8**837 + 4**13

# Переменная для хранения числа в 9-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 9-ричную
while n:
    # Получаем последнюю цифру (остаток от деления на 9) и добавляем её в начало строки
    s = str(n % 9) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 9)
    n //= 9

# Подсчёт и вывод количества цифр ’8’ в 9-ричной записи числа
print(s.count(’8’))

Ответ: 99

Ошибка.
Попробуйте повторить позже

Задача 47#11808Максимум баллов за задание: 1

Сколько двоек содержится в троичной записи значения выражения: 96 + 34 − 770?

Показать ответ и решение

Решение программой

Для подсчёта количества двоек в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество двоек при помощи метода count().

# Исходное выражение
a = 9**6 + 3**4 - 770

# Переменная для хранения числа в троичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в троичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(a % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    a //= 3

# Подсчёт и вывод количества цифр ’2’ в троичной записи числа
print(s.count(’2’))

Решение руками:

96 + 34 − 770 = 312 + 34 − 36 − 33 − 32 − 3 − 2

Вычтем столбиком:

    1000000010000
    -     1001112
    -------------
    0222222001111

Итого, 6 двоек.

Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 48#11809Максимум баллов за задание: 1

Сколько значащих нулей содержится в двоичной записи значения выражения: 165 +85 − 42 + 29 − 535?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество нулей при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 16**5 + 8**5 - 4**2 + 2**9 - 535

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества цифр ’0’ в двоичной записи числа
print(s.count(’0’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
a = bin(16**5 + 8**5 - 4**2 + 2**9 - 535)[2:]

# Подсчёт и вывод количества цифр ’0’ в двоичной записи числа
print(a.count(’0’))

Решение руками:

  5   5   2   9         20   15   4   9   9   4   2          20   15   5   2
16 + 8 − 4  +2  − 535 = 2 + 2  − 2 + 2 − 2 − 2 − 2  − 2 − 1 = 2 + 2 − 2 − 2 − 2 − 1

Вычтем столбиком:

    100001000000000000000
    -              100111
    ---------------------
    100000111111111011001

Итого, 8 нулей.

Ответ: 8

Ошибка.
Попробуйте повторить позже

Задача 49#11810Максимум баллов за задание: 1

Сколько единиц содержится в двоичной записи значения выражения:

322 − 162 + 82 − 42 + 22 − 12 + 1023?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 32**2 - 16**2 + 8**2 - 4**2 + 2**2 - 1**2 + 1023

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
a = bin(32**2 - 16**2 + 8**2 - 4**2 + 2**2 - 1**2 + 1023)[2:]

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(a.count(’1’))

Решение руками:

  2    2   2   2    2   2         10   8   6   4   2       10      11   8   6   4    2
32 − 16 + 8  − 4 + 2 − 1 + 1023 = 2 − 2 + 2 − 2  +2  − 1+ 2  − 1 = 2 − 2 + 2  − 2 + 2 − 2

Вычтем столбиком:

    100001000100
    -  100010010
    ------------
     11100110010

Итого, 6 единиц.

Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 50#11811Максимум баллов за задание: 1

Сколько значащих нулей содержится в троичной записи значения выражения: 2 ∗7293 − 275 + 2 ∗94 − 37 + 453?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество нулей при помощи метода count().

# Исходное выражение
a = 2*729**3 - 27**5 + 2*9**4 - 3**7 + 453

# Переменная для хранения числа в троичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в троичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(a % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    a //= 3

# Подсчёт и вывод количества цифр ’0’ в троичной записи числа
print(s.count(’0’))

Решение руками:

2∗ 7293 − 275 + 2∗ 94 − 37 + 453 = 2 ∗318 − 315 + 2∗ 38 − 37 + 35 + 2∗ 34 + 33 + 2∗ 32 + 3

Вычтем столбиком:

    2 000000 000200 121210
    -   1000 000010 000000
    ----------------------
    1 222000 000120 121210

Итого, 8 нулей.

Ответ: 8

Ошибка.
Попробуйте повторить позже

Задача 51#11812Максимум баллов за задание: 1

Сколько семерок содержится в восьмеричной записи значения выражения:

5∗ 5123 + 2∗ 646 − 7∗84 − 111?

Показать ответ и решение

Решение программой

Для подсчёта количества семёрок в 8-ричной записи числа необходимо написать алгоритм перевода исходного числа в 8-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество семёрок при помощи метода count().

# Исходное выражение
s = 5 * 512 ** 3 + 2 * 64 ** 6 - 7 * 8 ** 4 - 111

# Переменная для хранения числа в 8-ричной системе в виде строки
k = ’’

# Перевод числа из десятичной системы в 8-ричную
while s > 0:
    # Получаем последнюю цифру (остаток от деления на 8) и добавляем её в начало строки
    k = str(s % 8) + k
    # Отбрасываем последнюю цифру (целочисленное деление на 8)
    s //= 8

# Подсчёт и вывод количества цифр ’7’ в 8-ричной записи числа
print(k.count(’7’))

Решение руками:

5∗ 5123 + 2∗ 646 − 7∗84 − 111 = 5∗ 89 + 2∗ 812 − 7∗84 − 82 − 6∗8 + 1

Вычтем столбиком:

    2 005000 000001
    -         70160
    ---------------
    2 004777 707621

Итого, 5 семерок.

Ответ: 5

Ошибка.
Попробуйте повторить позже

Задача 52#16274Максимум баллов за задание: 1

Сколько единиц содержится в двоичной записи значения выражения: 210 + 29 +28?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 2**10 + 2**9 + 2**8

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
a = bin(2**10 + 2**9 + 2**8)[2:]

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(a.count(’1’))

Решение руками:

В двоичной записи нет цифры 2, а значит числа примут вид *единица, затем нули в количестве равном степени числа*, следовательно получим числа 10000000000, 1000000000 и 100000000. Итого результат сложения: 111000000002

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 53#16277Максимум баллов за задание: 1

Сколько единиц содержится в двоичной записи значения выражения: 419 + 28 +31  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 4**19 + 2**8 + 31

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
a = bin(4**19 + 2**8 + 31)[2:]

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(a.count(’1’))

Решение руками:

Каждое из чисел приведем к виду  k
2  . После чего внутри двоичной сс выполним все арифметические операции и получим ответ.

419 + 28 + 31 = 238 +28 + 25 − 1.

В результате сложения получаем число, в котором 3 единицы, стоящие на первом месте (считая слева), на 6 и 9 месте (считая справа). Чтобы вычесть единицу, займем из 6 разряда (считая справа) и выполним вычитание, тем самым единица на 6 месте (считая справа) заменится на 0, а стоящие за ней 5 нулей - заменятся на 1.

    100...0100100000
   -               1
    ----------------
    100...0100011111

Итого 7 единиц.

Ответ: 7

Ошибка.
Попробуйте повторить позже

Задача 54#16278Максимум баллов за задание: 1

Сколько шестёрок содержится в семеричной записи значения выражения: 34315 + 494 − 72  ?

Показать ответ и решение

Решение программой

Для подсчёта количества шестёрок в 7-ричной записи числа необходимо написать алгоритм перевода исходного числа в 7-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество шестёрок при помощи метода count().

# Исходное выражение
s = 343 ** 15 + 49 ** 4 - 7 ** 2

# Переменная для хранения числа в 7-ричной системе в виде строки
a = ’’

# Перевод числа из десятичной системы в 7-ричную
while s > 0:
    # Получаем последнюю цифру (остаток от деления на 7) и добавляем её в начало строки
    a = str(s % 7) + a
    # Отбрасываем последнюю цифру (целочисленное деление на 7)
    s //= 7

# Подсчёт и вывод количества цифр ’6’ в 7-ричной записи числа
print(a.count(’6’))

Ручное решение: Каждое из чисел приведем к виду 7k  . После чего внутри семеричной сс выполним все арифметические операции и получим ответ. 34315 + 494 − 72 = 745 + 78 − 72

После выполнения операции сложения получаем число, в котором две единицы: на первом слева месте и на девятом справа месте. Для выполнения вычитания займем из 9 (считая справа) разряда, таким образом единица на месте 9 (считая справа) разряда заменится на 0, а стоящие после нее 5 нулей заменятся на шестерки. Выполним вычитание.

    100...0100000000
   -             100
    ----------------
    100...0066666600

Ответ: 6

Ошибка.
Попробуйте повторить позже

Задача 55#16279Максимум баллов за задание: 1

Сколько троек содержится в пятеричной записи значения выражения: 2520 + 4⋅511 − 2  ?

Показать ответ и решение

Решение программой

Для подсчёта количества троек в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество троек при помощи метода count().

# Исходное выражение
s = 25 ** 20 + 4 * 5 ** 11 - 2

# Переменная для хранения числа в 5-ричной системе в виде строки
a = ’’

# Перевод числа из десятичной системы в 5-ричную
while s > 0:
    # Получаем последнюю цифру (остаток от деления на 5) и добавляем её в начало строки
    a = str(s % 5) + a
    # Отбрасываем последнюю цифру (целочисленное деление на 5)
    s //= 5

# Подсчёт и вывод количества цифр ’3’ в 5-ричной записи числа
print(a.count(’3’))

Ручное решение

Каждое из чисел приведем к виду 5k  . После чего внутри пятиричной сс выполним все арифметические операции и получим ответ.

  20      11       40      11
25  + 4∗ 5  − 2 = 5 + 4∗ 5  − 2

Выполнив операцию сложения получим число из 41 цифры, в котором первая цифра слева - единица, а двенадцатая цифра справа - четверка. Для выполнения вычитания займем из двенадцатого разряда справа и вычтем:

    100...0400000000000
   -                  2
    -------------------
    100...0344444444443

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 56#16280Максимум баллов за задание: 1

Сколько единиц содержится в двоичной записи значения выражения: 82222 + 4222 − 22  ?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 8**2222 + 4**222 - 22

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(s.count(’1’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
a = bin(8**2222 + 4**222 - 22)[2:]

# Подсчёт и вывод количества единиц ’1’ в двоичной записи числа
print(a.count(’1’))

Решение руками:

Каждое из чисел приведем к виду  k
2  . После чего внутри двоичной сс выполним все арифметические операции и получим ответ.

82222 + 4222 − 22 = 26666 + 2444 − 25 + 23 + 21

После применения операции сложения для первых двух чисел получим число из 6667 цифр, в котором первая цифра слева - единица и 445 цифра справа - единица, остальные - нули. Для выполнения вычитания займем из 445 разряда и вычтем число, в котором 6 цифр, первая - единица, а остальные - нули:

    100...00100...0000000
   -               100000
    ---------------------
    100...00011...1000000

Получаем, что цифра в 445 разряде справа заменится на 0, цифры от 444 до 6 разряда заменятся на 1, в 6 разряде произойдет вычитание и останется 0, последние 5 нулей останутся неизменны.

Выполним сложение, зная, что 23 = 10002,21 = 102  :

    100...00011...1000000
   +                 1010
    ---------------------
    100...00011...1001010

Итого одна единица на первом разряде слева, одна на втором разряде справа, одна на четвертом разряде справа, и 439 единиц между 444 и 6 разрядом справа. Таким образом, суммарно 442 единицы.

Ответ: 442

Ошибка.
Попробуйте повторить позже

Задача 57#16281Максимум баллов за задание: 1

Сколько значащих нулей содержится в двоичной записи значения выражения: 82020 + 42017 + 26 − 1  ?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество нулей при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 8**2020 + 4**2017 + 26 - 1

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества нулей ’0’ в двоичной записи числа
print(s.count(’0’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
a = bin(8**2020 + 4**2017 + 26 - 1)[2:]

# Подсчёт и вывод количества нулей ’0’ в двоичной записи числа
print(a.count(’0’))

Решение руками:

Каждое из чисел приведем к виду  k
2  . После чего внутри двоичной сс выполним все арифметические операции и получим ответ.

82020 + 42017 + 26− 1 = 26060 + 24034 +24 + 23 + 1

После сложения получим число из 6061 цифры, в котором первая цифра слева - единица, 4035 цифра справа - единица, 5 цифра справа - единица, 4 цифра справа - единица, и последняя цифра - единица. Итого 5 единиц. Тогда нулей в числе: 6061− 5 = 6056  .

Ответ: 6056

Ошибка.
Попробуйте повторить позже

Задача 58#16283Максимум баллов за задание: 1

Сколько значащих нулей содержится в троичной записи значения выражения: 92021 + 32022 + 26 − 1  ?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в троичной записи числа необходимо написать алгоритм перевода исходного числа в троичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество нулей при помощи метода count().

# Исходное выражение
x = 9**2021 + 3**2022 + 26 - 1

# Переменная для хранения числа в троичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в троичную
while x > 0:
    # Получаем последнюю цифру (остаток от деления на 3) и добавляем её в начало строки
    s = str(x % 3) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 3)
    x //= 3

# Подсчёт и вывод количества цифр ’0’ в троичной записи числа
print(s.count(’0’))

Ответ: 4038

Ошибка.
Попробуйте повторить позже

Задача 59#22203Максимум баллов за задание: 1

Сколько единиц содержится в восьмеричной записи значения выражения: 810 + 29 + 648 +117?

Показать ответ и решение

Решение программой

Для подсчёта количества единиц в 8-ричной записи числа необходимо написать алгоритм перевода исходного числа в 8-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count(). Также можно использовать функцию oct() для перевода числа в 8-ричную систему счисления.

# Способ 1
# Исходное выражение
a = 8**10 + 2**9 + 64**8 + 117

# Переменная для хранения числа в 8-ричной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в 8-ричную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 8) и добавляем её в начало строки
    s = str(a % 8) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 8)
    a //= 8

# Подсчёт и вывод количества цифр ’1’ в 8-ричной записи числа
print(s.count(’1’))

# Способ 2
# Прямое преобразование числа в 8-ричную строку с помощью oct()
a = oct(8**10 + 2**9 + 64**8 + 117)[2:]

# Подсчёт и вывод количества цифр ’1’ в 8-ричной записи числа
print(a.count(’1’))

Решение руками:

Представим все числа в виде  n
8

29 = (23)3 = 83

648 = 816

117 = 82 + 6⋅81 + 5⋅80

Получаем:

816 + 810 + 83 + 82 + 6 ⋅81 + 5 = 10◟0.◝.0◜0 ◞ 10◟0..◝.0◜0 ◞ 1165
                               5      6

Количество единиц: 4

Ответ: 4

Ошибка.
Попробуйте повторить позже

Задача 60#22204Максимум баллов за задание: 1

Сколько значащих нулей содержится в двоичной записи значения выражения: 42021 + 22022 + 26  ?

Показать ответ и решение

Решение программой

Для подсчёта количества нулей в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество нулей при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.

# Способ 1
# Исходное выражение
a = 4**2021 + 2**2022 + 26

# Переменная для хранения числа в двоичной системе в виде строки
s = ’’

# Перевод числа из десятичной системы в двоичную
while a > 0:
    # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки
    s = str(a % 2) + s
    # Отбрасываем последнюю цифру (целочисленное деление на 2)
    a //= 2

# Подсчёт и вывод количества нулей ’0’ в двоичной записи числа
print(s.count(’0’))

# Способ 2
# Прямое преобразование числа в двоичную строку с помощью bin()
a = bin(4**2021 + 2**2022 + 26)[2:]

# Подсчёт и вывод количества нулей ’0’ в двоичной записи числа
print(a.count(’0’))

Решение руками: Представим все числа в виде 2n

 2021    4042
4    = 2

26 = 24 + 23 + 2

Получим:

24042 + 22022 +24 + 23 + 2 = 1 0◟00.◝..◜000◞ 10◟00.◝..◜000◞11010
                         4042−2022−1 2022−4− 1

Количество нулей: 4042− 2022− 1 + 2022− 4− 1+ 1 + 1 = 4038

Ответ: 4038
Рулетка
Вы можете получить скидку в рулетке!