Айдар написал на Python программу для анализа цифр натурального числа. Операция % даёт остаток от деления, а операция // — целую часть от деления. Программа считывает число a и в цикле разбирает его с конца: берёт последнюю цифру d, затем отбрасывает её. Если цифра чётная, она прибавляется к сумме s, а если нечётная, счётчик k увеличивается на 1. В конце программа выводит s в первой строке и k во второй. Вот текст программы:
a = int(input())
s = 0
k = 0
while a > 0:
d = a % 10
if d % 2 == 0:
s = s + d
else:
k = k + 1
a = a // 10
print(s)
print(k)
Для проверки Айдар вводил разные числа, например 52714 и 90310. Потом он задумал изменить программу так, чтобы s накапливала сумму нечётных цифр, а k считал чётные цифры.
Какой строкой нужно заменить «if d % 2 == 0:», чтобы s накапливала сумму нечётных цифр, а k считал чётные цифры?
Показать ответ и разборСкрыть ответ и разбор
Верный ответ
- Aif d % 2 == 1:
Разбор
Ветка с суммой должна выполняться для нечётных цифр, то есть при остатке от деления на 2, равном 1. Условие «d % 2 == 1» это и проверяет, а чётные цифры уходят в ветку else, где k увеличивается на 1. Остальные условия проверяют не чётность: «d // 2 == 1» верно лишь для цифр 2 и 3, «d % 10 == 1» только для цифры 1, а «d > 5» только для цифр 6–9.