14.01 Арифметические выражения
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Значение выражения
Решение программой
Для подсчёта суммы разрядов числа в 8-ричной системе счисления необходимо написать алгоритм перевода исходного числа в 8-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую, но мы не будем записывать разряды в строку, а будем прибавлять их к общей сумме.
# Исходное выражение k = (2**345 + 8**65 - 4**130) * (8**123 - 2**89 + 4**45) # Переменная для накопления суммы цифр числа в 8-ричной системе summa = 0 # Перевод числа из десятичной системы в 8-ричную и суммирование цифр while k != 0: # Добавляем последнюю цифру (остаток от деления на 8) к сумме summa += k % 8 # Отбрасываем последнюю цифру (целочисленное деление на 8) k //= 8 # Вывод суммы цифр в 8-ричной записи числа print(summa)
Ошибка.
Попробуйте повторить позже
Сколько единиц в двоичной записи числа
Решение программой
Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count(). Также можно использовать функцию bin() для перевода числа в двоичную систему счисления.
# Способ 1 # Исходное выражение a = 4**2015 + 8**405 - 2**150 - 122 # Переменная для хранения числа в двоичной системе в виде строки s = ’’ # Перевод числа из десятичной системы в двоичную while a > 0: # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки s = str(a % 2) + s # Отбрасываем последнюю цифру (целочисленное деление на 2) a //= 2 # Подсчёт и вывод количества единиц ’1’ в двоичной записи числа print(s.count(’1’)) # Способ 2 # Прямое преобразование числа в двоичную строку с помощью bin() a = bin(4**2015 + 8**405 - 2**150 - 122)[2:] # Подсчёт и вывод количества единиц ’1’ в двоичной записи числа print(a.count(’1’))
Решение руками:
Каждое из чисел либо приведем к виду . После чего внутри двоичной сс выполним все арифметические операции и
получим ответ.
В результате сложения первых двух чисел получаем число, в котором 4031 цифра, первая цифра слева - единица и 1216 цифра справа - единица, остальные - нули. Вычтем число, в котором 151 цифра: 1 единица слева и 150 нулей, заняв из 1216 разряда.
100...0100...00000...000 - 100...000 ------------------------ 100...0011...11000...000
Таким образом 1216 разряд заменится на 0, цифры от 1216 до 151 разряда заменятся на единицу, в 151 разряде произойдет вычитание и останется ноль, остальные цифры останутся неизменны. Вычтем число, в котором 8 цифр: 1 единица слева и 7 нулей, заняв из 151 разряда.
100...0011...11000...000000000 - 10000000 ------------------------------ 100...0011...10111...100000000
Таким образом 151 разряд заменится на 0, цифры от 151 до 8 разряда заменятся на единицу, в 8 разряде произойдет
вычитание и останется 0, остальные цифры останутся неизменны. Выполним операцию сложения, зная, что
.
100...0011...10111...100000000 + 110 ------------------------------ 100...0011...10111...100000110
Тогда единицы будут от 1216 разряда до 151 разряда невключительно (1065 единиц), от 150 до 8 разряда невключительно (142 единицы), одна в начале числа и две в конце - суммарно 1210 единиц.
Ошибка.
Попробуйте повторить позже
Значение выражения записали в системе счисления с основанием 4. Сколько цифр 3
содержится в этой записи?
Используйте отказ от if для решения задачи.
Решение программой
Для подсчёта количества троек в 4-ричной записи числа необходимо написать алгоритм перевода исходного числа в 4-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую, но мы не будем записывать цифры в строку, а будем уведичивать счётчик в том случае, если будет появляться цифра 3.
# Исходное выражение num = 4**103 + 3*4**444 - 2*4**44 + 128 # Переменная для подсчёта количества цифр ’3’ в 4-ричной системе ans = 0 # Перевод числа из десятичной системы в 4-ричную и подсчёт цифр ’3’ while num > 0: # Если последняя цифра равна 3, увеличиваем счётчик ans += 1 * (num % 4 == 3) # Отбрасываем последнюю цифру (целочисленное деление на 4) num //= 4 # Вывод количества цифр ’3’ в 4-ричной записи числа print(ans)
Решение руками:
Каждое из чисел либо приведем к виду и упорядочим по убыванию степеней. После чего внутри четверичной сс
выполним все арифметические операции и получим ответ.
В результате сложения первых двух членов получаем число из 445 цифр, в котором первая слева цифра - тройка, 104 справа цифра - единица, остальные - нули. Чтобы вычесть число, в котором 45 цифр, из которых первая слева - двойка, а остальные нули, займем из 104 разряда.
300...01000...000...00000 - 20...00000 ------------------------- 300...00333...320...00000
Таким образом, 104 разряд справа превратиться в 0, цифры от 104 до 45 разряда станут тройками, в 45 разряде
произойдет вычитание и получится двойка. Остальные цифры останутся неизменными. Произведем сложение последнего
члена, зная, что
300...00333...320...00000 + 2000 ------------------------- 300...00333...320...02000
Итого цифра 3 стоит в первом разряде слева, и от 103 до 45 разряда невключительно справа (58 цифр) Тогда получаем ответ: 59 троек.
Ошибка.
Попробуйте повторить позже
Сколько единиц в двоичной записи числа
Решение программой
Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество единиц при помощи метода count().
# Исходное выражение k = 4**2014 + 2**2015 - 8 # Переменная для хранения числа в двоичной системе в виде строки s = ’’ # Перевод числа из десятичной системы в двоичную while k != 0: # Получаем последнюю цифру (остаток от деления на 2) и добавляем её в начало строки s = str(k % 2) + s # Отбрасываем последнюю цифру (целочисленное деление на 2) k //= 2 # Подсчёт и вывод количества единиц ’1’ в двоичной записи числа print(s.count(’1’))
Ошибка.
Попробуйте повторить позже
Значение арифметического выражения: – записали в системе счисления с
основанием
. Сколько цифр
содержится в этой записи?
Решение программой
Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм деления числа на основание системы счисления (в данном случае на 2) с сохранением остатков. Каждый остаток соответствует одной цифре двоичной записи числа. Чтобы посчитать количество единиц, на каждом шаге проверяем остаток: если он равен 1, увеличиваем счётчик. Таким образом, после полного разложения числа в двоичной системе счисления в счётчике будет содержаться количество единиц в его двоичной записи.
# Исходное выражение k = 256**4 + 128**8 + 64**16 - 32**32 - 16**64 - 8**128 + 4**256 # Переменная для подсчёта количества единиц в двоичной записи числа ans = 0 # Перевод числа k в двоичную систему и подсчёт единиц while k != 0: # Прибавляем последнюю цифру двоичной записи (остаток от деления на 2) ans += k % 2 # Отбрасываем последнюю цифру (целочисленное деление на 2) k //= 2 # Вывод количества единиц в двоичной записи числа print(ans)
Ошибка.
Попробуйте повторить позже
Сколько четверок содержится в пятеричной записи числа
Решение программой
Для подсчёта количества четвёрок в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество червёрок при помощи метода count().
# Исходное выражение s = 5 ** 14 + 25 ** 3 - 117 # Строка для хранения цифр числа в 5-ричной системе r = ’’ # Перевод числа из десятичной системы в 5-ричную while s > 0: # Добавляем последнюю цифру (остаток от деления на 5) к строке r = r + str(s % 5) # Отбрасываем последнюю цифру (целочисленное деление на 5) s //= 5 # Подсчёт и вывод количества цифр ’4’ в 5-ричной записи числа print(r.count(’4’))
Решение руками:
Каждое из чисел приведем к виду . После чего внутри пятеричной сс выполним все арифметические операции и
получим ответ.
В результате сложения первых двух членов получаем число из 15 цифр, в котором одна единица на первом разряде слева и одна единица на 7 разряде справа, остальные цифры - нули. Чтобы вычесть число, в котором 4 цифры (1 единица слева и 3 нуля), займем из 7 разряда:
1000000001000000 - 1000 ---------------- 1000000000444000
Таким образом 7 разряд заменяется на 0, цифры с 6 по 4 разряд заменяются на четверки, в 4 разряде происходит
вычитание и остается 4. Остальные цифры неизменны. Выполним сложение, зная, что .
1000000000444000 + 13 ---------------- 1000000000444013
Итого 3 четверки.
Ошибка.
Попробуйте повторить позже
Сколько значащих нулей в двоичной записи числа
Решение программно:
Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм деления числа на основание системы счисления (в данном случае на 2) с сохранением остатков. Каждый остаток соответствует одной цифре двоичной записи числа. Чтобы посчитать количество нулей, на каждом шаге проверяем остаток: если он равен 0, увеличиваем счётчик. Таким образом, после полного разложения числа в двоичной системе счисления в счётчике будет содержаться количество нулей в его двоичной записи.
# Исходное выражение a = 4**512 + 8**512 - 2**128 - 250 # Переменная для подсчёта количества нулей в двоичной записи числа k = 0 # Перевод числа в двоичную систему и подсчёт количества нулей while a > 0: # Проверяем последнюю цифру (остаток от деления на 2) — если она равна 0, увеличиваем счётчик k += (a % 2 == 0) # Отбрасываем последнюю цифру (целочисленное деление на 2) a //= 2 # Вывод количества нулей в двоичной записи числа print(k)
Решение руками:
Каждое из чисел приведем к виду . После чего внутри двоичной сс выполним все арифметические операции и
получим ответ.
В результате сложения первых двух членов получим число, состоящее из 1537 цифр, в котором первая цифра слева - единица, 1025 цифра справа - единица, а остальные цифры - нули. Чтобы вычесть число, представляющее собой одну единицу и 128 нулей, займем из 1025 разряда:
100...010...0000...000 - 10...000 ---------------------- 100...001...1110...000
Таким образом, 1025 справа цифра станет нулем, цифры от 1025 до 129 разряда станут единицами, в 129 разряде произойдет вычитание и останется 1. Остальные цифры будут неизменны. Чтобы вычесть число, представляющее собой одну единицу и 8 нулей, займем из 129 разряда:
100...001...1110...0000000000 - 100000000 ----------------------------- 100...001...1101...1100000000
Таким образом, 130 справа цифра станет нулем, цифры от 130 до 9 разряда станут единицами, в 9 разряде
произойдет вычитание и останется 1. Остальные цифры будут неизменны. Выполним сложение, зная, что
:
100...001...1101...1100000000 + 110 ----------------------------- 100...001...1101...1100000110
Нули стоят на позициях от 1536 до 1024 разряда справа невключительно (512 цифр), в 129 разряде (1 цифра), от 8 до 3
разряда справа невключительно (5 цифр), в последнем разряде. Суммарно: .
Ошибка.
Попробуйте повторить позже
Значение арифметического выражения
Решение программой
Для подсчёта суммы разрядов числа в 7-ричной системе счисления необходимо написать алгоритм перевода исходного числа в 7-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Кажый разряд 7-ричного числа (остаток от деления на 7) будем прибавлять к общей сумме.
# Исходное выражение k = 43 * 7**103 - 21 * 7**57 + 98 # Переменная для подсчёта суммы цифр числа в 7-ричной системе s = 0 # Перевод числа из десятичной системы в 7-ричную и подсчёт суммы цифр while k != 0: # Прибавляем последнюю цифру числа в 7-ричной системе (остаток от деления на 7) s += k % 7 # Отбрасываем последнюю цифру (целочисленное деление на 7) k //= 7 # Вывод суммы цифр числа в 7-ричной системе print(s)
Решение руками:
Каждое из чисел приведем к виду . После чего внутри семиричной сс выполним все арифметические операции и
получим ответ.
В результате сложения первых двух членов, получаем число из 105 цифр, в котором первая цифра слева - 6, вторая цифра слева - единица, а остальные цифры нули. Чтобы вычесть число, представляющее собой 3 и 58 нулей, займем из второго слева разряда:
6100...000...000 - 30...000 ---------------- 6066...640...000
Тогда вторая цифра слева становится нулем, цифры до 59 разряда (считая справа) становятся 6, а в 59
разряде происходит вычитание и остается 4. Остальные цифры неизменны. Выполним сложение, зная, что
:
6066...640...000 + 200 ---------------- 6066...640...200
Получаем число, в котором одна четверка, одна двойка, а шестерки расположены от 103 разряда справа до 59 разряда
справа невключительно (44 цифры) и на первом разряде. Их сумма:
Ошибка.
Попробуйте повторить позже
Значение выражения
записали в системе счисления с основанием . Укажите сумму цифр этой записи.
Решение программой
Для подсчёта суммы разрядов числа в 6-ричной системе счисления необходимо написать алгоритм перевода исходного числа в 6-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Будем прибавлять разряды 6-ричного числа (остаток от деления на 6) к общей сумме.
# Исходное выражение k = (66 + 6**2019) * 6**2019 + 66 + 6**6 # Переменная для подсчёта суммы цифр числа в 6-ричной системе summa = 0 # Перевод числа из десятичной системы в 6-ричную и подсчёт суммы цифр while k != 0: # Прибавляем последнюю цифру числа в 6-ричной системе (остаток от деления на 6) summa += k % 6 # Отбрасываем последнюю цифру (целочисленное деление на 6) k //= 6 # Вывод суммы цифр числа в 6-ричной системе print(summa)
Решение руками:
Каждое из чисел приведем к виду . После чего внутри шестеричной сс выполним все арифметические операции и
получим ответ.
Вспомним факт, что основание сс в степени n в десятичной сс = единица и n нулей в указанной сс. Так, например,
- число с 4038 нулями. Множитель перед основанием сс в степени n влияет на первую цифру в
записи.
Таким образом получаем число, в котором две пятерки (в разряде 2020 и 1 считая справа), четыре единицы (в разрядах 4038, 2021, 6, 2 считая справа), остальные цифры - нули. Сумма цифр = 14.
Ошибка.
Попробуйте повторить позже
Значение выражения
записали в системе счисления с основанием . Сколько цифр
содержится в этой записи?
Решение программой
Для подсчёта количества цифр 7 в 9-ричной записи числа необходимо сначала перевести исходное число в 9-ричную систему счисления. Для этого используется стандартный алгоритм перевода числа из десятичной системы в другую: на каждом шаге берём остаток от деления на 9 (это последняя цифра в 9-ричной записи) и уменьшаем число целочисленным делением на 9. После получения цифры проверяем, равна ли она 7, и если да — увеличиваем счётчик.
# Исходное выражение n = 7 * 6561 ** 46 + 8 * 729 ** 15 - 6 * 5832 # Переменная для подсчёта количества цифр ’7’ в 9-ричной системе count = 0 # Перевод числа из десятичной системы в 9-ричную и подсчёт цифр ’7’ while n > 0: # Проверяем последнюю цифру числа в 9-ричной системе — если она равна 7, увеличиваем счётчик if (n % 9) == 7: count += 1 # Отбрасываем последнюю цифру (целочисленное деление на 9) n //= 9 # Вывод количества цифр ’7’ в 9-ричной записи числа print(count)
Ошибка.
Попробуйте повторить позже
Значение арифметического выражения: записали в системе счисления с основанием 8. Сколько цифр «7»
содержится в этой записи?
Решение программой
Для подсчёта количества цифр 7 в 8-ричной записи числа необходимо сначала перевести исходное число в 8-ричную систему счисления. Для этого используется стандартный алгоритм перевода числа из десятичной системы в другую: на каждом шаге берём остаток от деления на 8 (это последняя цифра в 8-ричной записи) и уменьшаем число целочисленным делением на 8. После получения цифры проверяем, равна ли она 7, и если да — увеличиваем счётчик.
# Исходное выражение k = 64**10 + 2**90 - 16 # Переменная для подсчёта количества цифр ’7’ в 8-ричной системе counter = 0 # Перевод числа из десятичной системы в 8-ричную и подсчёт цифр ’7’ while k != 0: # Проверяем последнюю цифру числа в 8-ричной системе — если она равна 7, увеличиваем счётчик counter += k % 8 == 7 # Отбрасываем последнюю цифру (целочисленное деление на 8) k //= 8 # Вывод количества цифр ’7’ в 8-ричной записи числа print(counter)
Ошибка.
Попробуйте повторить позже
Дано арифметическое выражение: . Найдите такой
, чтобы количество нулей в записи числа
в системе счисления с основанием
равнялось
.
Решение программой
Для поиска значения x, при котором 9-ричная запись числа содержит ровно 12 нулей, необходимо сначала перевести число в 9-ричную систему счисления. Для перевода используется стандартный алгоритм: на каждом шаге берём остаток от деления на 9 (это последняя цифра в 9-ричной записи) и уменьшаем число целочисленным делением на 9. Если цифра равна 0, увеличиваем счётчик. После обработки всех цифр проверяем, равен ли счётчик 12, и если да — выводим соответствующее x.
# Перебор значений x от 7 до 29 включительно for x in range(7, 30): # Исходное выражение для текущего x n = 9**30 + 9**x - 9**6 # Переменная для подсчёта количества цифр ’0’ в 9-ричной системе counter = 0 # Перевод числа из десятичной системы в 9-ричную и подсчёт цифр ’0’ while n != 0: # Если последняя цифра числа в 9-ричной системе равна 0, увеличиваем счётчик counter += n % 9 == 0 # Отбрасываем последнюю цифру (целочисленное деление на 9) n //= 9 # Если количество нулей равно 12, выводим текущее значение x if counter == 12: print(x)
Ошибка.
Попробуйте повторить позже
Сколько троек содержится в пятеричной записи значения выражения ?
Решение программой
Для подсчёта количества троек в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество троек при помощи метода count().
# Исходное выражение a = 25**20 + 4 * 5**11 - 2 # Строка для хранения цифр числа в 5-ричной системе s = ’’ # Перевод числа из десятичной системы в 5-ричную while a > 0: # Добавляем последнюю цифру числа в 5-ричной системе в начало строки s = str(a % 5) + s # Отбрасываем последнюю цифру (целочисленное деление на 5) a //= 5 # Подсчёт и вывод количества цифр ’3’ в 5-ричной записи числа print(s.count(’3’))
Решение руками:
Каждое из чисел приведем к виду . После чего внутри пятиричной сс выполним все арифметические операции и
получим ответ.
.
После сложения первых двух членов получим число из 41 цифры, в котором первая слева цифра - единица, а двенадцатая справа цифра - 4. Чтобы вычесть 2 займем из двенадцатого разряда:
100...040000000000000 - 2 --------------------- 100...034444444444443
Таким образом, двенадцатый разряд уменьшится на 1, цифры от 12 до 2 справа разяда станут четверками, в последнем разряде произойдет вычитание и останется тройка. Итого в числе - 2 тройки.
Ошибка.
Попробуйте повторить позже
Значение выражения записали в системе счисления с основанием
. Найдите сумму цифр
получившегося числа и запишите её в ответе в десятичной системе счисления.
Решение программой
Для подсчёта суммы цифр числа, полученного из двоичной записи выражения, необходимо сначала перевести число в двоичную систему счисления. Сделать это можно с помощью функции bin(). Далее преобразуем строку обратно в целое число. Затем реализуется стандартный алгоритм подсчёта суммы цифр: на каждом шаге берём последнюю цифру числа (остаток от деления на 10) и добавляем её к счётчику, после чего отбрасываем эту цифру целочисленным делением на 10. В конце выводим общую сумму всех цифр.
# Исходное выражение: формируем число и сразу переводим его в двоичную систему a = int(bin(2 ** 11 + 4 * 3 ** 1111 + 111)[2:]) # Переменная для подсчёта суммы цифр числа в двоичной записи ans = 0 # Подсчёт суммы цифр числа в двоичной системе while a > 0: # Прибавляем последнюю цифру числа (остаток от деления на 10) ans += (a % 10) # Отбрасываем последнюю цифру a //= 10 # Вывод суммы цифр числа в двоичной системе print(ans)
Ошибка.
Попробуйте повторить позже
Значение выражения записали в системе счисления с основанием
. Сколько цифр 6 содержится в этой
записи?
Решение программой
Для подсчёта количества цифр 6 в 7-ричной записи числа необходимо сначала перевести исходное число в 7-ричную систему счисления. Для этого используется стандартный алгоритм перевода числа из десятичной системы: на каждом шаге берём остаток от деления на 7 (это последняя цифра в 7-ричной записи) и уменьшаем число целочисленным делением на 7. Если полученная цифра равна 6, увеличиваем счётчик.
# Исходное выражение s = 49 ** 7 * 7 ** 20 - 7 ** 8 - 28 # Переменная для подсчёта количества цифр ’6’ в 7-ричной системе count = 0 # Перевод числа из десятичной системы в 7-ричную и подсчёт цифр ’6’ while s > 0: # Если последняя цифра числа в 7-ричной системе равна 6, увеличиваем счётчик if s % 7 == 6: count += 1 # Отбрасываем последнюю цифру (целочисленное деление на 7) s //= 7 # Вывод количества цифр ’6’ в 7-ричной записи числа print(count)
Решение руками:
Каждое из чисел приведем к виду . После чего внутри семиричной сс выполним все арифметические операции и
получим ответ.
.
Первое число состоит из 35 цифр, первая из которых единица, а остальные нули. Чтобы вычесть число, равное одной единице и 8 нулям, займем из первого разряда:
100...0000000000 - 100000000 ---------------- 66...6600000000
Так первый разряд обнуляется, а цифры после него до 9 разряда (считая справа) становятся шестерками. Выполним
вычитание, зная, что .
66...6600000000 - 40 ---------------- 66...6566666630
Итого шестерки расположены от первого разряда слева (34 разряд справа) до 9 разряда (считая справа) невключительно (итого 25 цифр), от 8 разряда справа до 2 разряда справа невключительно (6 цифр). Суммарно в числе 31 шестерка.
Ошибка.
Попробуйте повторить позже
Сколько нулей содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества нулей в двоичной записи числа сначала переводим число в двоичную систему с помощью функции bin(). Префикс 0b, который добавляет bin(), отбрасываем с помощью среза [2:]. После этого с помощью метода count() подсчитываем количество символов ’0’ в двоичной строке и выводим результат.
# Исходное выражение s = 42 ** 42 + 4 ** 22 + 4 - 1 # Перевод числа в двоичную систему и подсчёт количества цифр ’0’ # bin(s)[2:] — преобразует число в строку двоичного представления без префикса ’0b’ print(bin(s)[2:].count(’0’))
Ошибка.
Попробуйте повторить позже
Сколько четверок содержится в пятеричной записи числа
Решение программой
Для подсчёта количества цифр 4 в 5-ричной записи числа необходимо сначала перевести исходное число в пятеричную систему счисления. Для перевода используется стандартный алгоритм: на каждом шаге берём остаток от деления на 5 (это последняя цифра в 5-ричной записи) и уменьшаем число целочисленным делением на 5. Если цифра равна 4, увеличиваем счётчик.
# Исходное выражение k = 5**14 + 25**3 - 117 # Переменная для подсчёта количества цифр ’4’ в 5-ричной системе ans = 0 # Перевод числа из десятичной системы в 5-ричную и подсчёт цифр ’4’ while k != 0: # Если последняя цифра числа в 5-ричной системе равна 4, увеличиваем счётчик ans += k % 5 == 4 # Отбрасываем последнюю цифру (целочисленное деление на 5) k //= 5 # Вывод количества цифр ’4’ в 5-ричной записи числа print(ans)
Решение руками:
Каждое из чисел приведем к виду . После чего внутри пятиричной сс выполним все арифметические операции и
получим ответ.
.
Выполнив сложение первых двух членов, получим число из 15 цифр, в котором единица стоит на первом месте слева и на седьмом месте справа. Чтобы выполнить числа, равного одной единице и трем нулям, займем из седьмого разряда:
1000000001000000 - 1000 ---------------- 1000000000444000
Так седьмой разряд обнулится, цифры от шестого до четвертого разряда станут четверками, в четвертом разряде
произойдет вычитание и тоже получится четверка. Остальные цифры останутся неизменны. Выполним сложение, зная, что
.
1000000000444000 + 13 ---------------- 1000000000444013
Итого в числе 3 четверки.
Ошибка.
Попробуйте повторить позже
Сколько единиц содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества единиц в двоичной записи числа сначала переводим число в двоичную систему с помощью функции bin(). Префикс 0b, который добавляет bin(), отбрасываем с помощью среза [2:]. Затем с помощью метода count() подсчитываем количество символов ’1’ в полученной двоичной строке и выводим результат.
# Исходное выражение s = 8 ** 2022 + 2 ** 2007 + 42 - 3 # Перевод числа в двоичную систему и подсчёт количества единиц # bin(s)[2:] — преобразует число в строку двоичного представления без префикса ’0b’ print(bin(s)[2:].count(’1’))
Ошибка.
Попробуйте повторить позже
Сколько единиц содержится в двоичной записи результата выражения: ?
Решение программой
Для подсчёта количества единиц в двоичной записи числа сначала переводим число в двоичную систему с помощью функции bin(). Префикс 0b, который добавляет bin(), отбрасываем с помощью среза [2:]. Затем с помощью метода count() подсчитываем количество символов ’1’ в полученной двоичной строке и выводим результат.
# Исходное выражение: преобразуем ’10’ из 8-ричной системы в десятичное, удваиваем и возводим в степень s = (2 * int(’10’, 8)) ** 2010 - 4 ** 2011 + 2 ** 2012 # Перевод числа в двоичную систему и подсчёт количества единиц # bin(s)[2:] — преобразует число в строку двоичного представления без префикса ’0b’ print(bin(s)[2:].count(’1’))
Ошибка.
Попробуйте повторить позже
Решите уравнение:
В ответ запишите значение в двоичной системе счисления.
Решение программой
Для поиска значения x , при котором выполняется равенство сначала переводим каждое число, записанное в разных системах счисления, в десятичную систему. Затем перебираем все x и проверяем условие равенства. Если оно выполняется, выводим значение x в двоичной системе с помощью функции bin(), отбрасывая префикс 0b срезом [2:].
# Перебор значений x от 1 до 999 включительно for x in range(1, 1000): # Преобразование строк в числа из разных систем счисления в десятичные s1 = int(’1423’, 5) # число ’1423’ в 5-ричной системе s2 = int(’1004’, 8) # число ’1004’ в 8-ричной системе s3 = int(’356’, 7) # число ’356’ в 7-ричной системе s4 = int(’2000’, 9) # число ’2000’ в 9-ричной системе # Проверяем условие: s1 + s2 * x + s3 должно быть равно s4 if s1 + s2 * x + s3 == s4: # Выводим значение x в двоичной системе (без префикса ’0b’) print(bin(x)[2:])
Решение руками:
Переведем все известные значения в десятичную систему счисления:
Перепишем уравнение: