Четвёртый вариант ответа
Объяснение:
Найдите верное равенство:
15₁₀ = 10001₂
23₁₆ = 11110₂
19₁₆ = 1000₂
43₈ = 23₁₆
1) проверяем первое равенство: 15₁₀ = 10001₂
15 mod 2 = 1
7 mod 2 = 1
3 mod 2 = 1
1 mod 2 = 1
Остаток от деления записываем в обратном порядке и получаем число: 1111₂
Неверное равенство.
2) проверяем второе равенство: 23₁₆ = 11110₂
По таблице значений переведём 11110₂ в 16-ю СС:
0001₂ = 1₁₆; 1110₂ = Е₁₆. Итог: 1E₁₆
Неверное равенство.
3) проверяем третье равенство: 23₁₆ = 1000₂
По таблице значений переведём 1000₂ в 16-ю СС:
1000₂ = 8₁₆
Неверное равенство
4) проверяем четвёртое равенство: 43₈ = 23₁₆
Сначала переведём 23₁₆ в 10-ю СС: 23₁₆ = 16¹*2 + 16⁰*3 = 32 + 3 = 35₁₀
Переведём из 10-й СС в 8-ю СС:
35 mod 8 = 3
4 mod 8 = 4
0 mod 8 = 0
Остаток от деления записываем в обратном порядке и получаем число: 43₈
Объяснение:
Т.к. я не знаю, как ты реализовал первую часть программы, скидываю тебе своё решение этой задачи целиком:
numbers_list = []
while True:
numbers = int(input("Введите число: "))
if numbers == 0:
break
else:
numbers_list.append(numbers)
sum_numbers = sum(numbers_list)
my_dict = {}
for x, y in enumerate(numbers_list):
if y % 3 == 0:
my_dict[x] = y # Замени на my_dict[x+1] = y, если надо считать с 1
print(f"Сумма всех введенных чисел: {sum_numbers}")
print(f"Словарь из чисел, кратных 3: {my_dict}")
Значит, смотри:
Создаём пустой лист. Далее вводим числа в бесконечном цикле, пока не получим 0 и складываем их в лист.
Затем, получаем сумму всех чисел при функции sum().
Потом создаём пустой словарик. И в цикле перебираем наш список с цифрами, используя enumerate (), чтобы получать индекс этого числа (то бишь, порядковый номер). Обрати внимание, что номер будет начинаться с нуля. Т.е. если тебе надо с 1, то просто в my_dict[x] = y поменяй на my_dict[x+1] = y и всё.
Ну и проходясь по списку с числами, мы проверяем каждое число, делится ли оно на 3 и если да, то добавляем в словарь. Где его ключ - это индекс, а значение - само число.
Пример работы программы, разумеется, прилагаю.