Задание № 2656 по информатике: Программирование алгоритмов на языке программирования Python

Программирование алгоритмов на языке программирования PythonПо тексту · среднее

Айдар написал на 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 считал чётные цифры.

Что произойдёт при вводе положительного числа, если из программы удалить строку «a = a // 10»?

  1. AПрограмма выведет 0 и 0, так как a обнулится
  2. BВозникнет синтаксическая ошибка
  3. CПрограмма обработает только последнюю цифру и завершится
  4. DПрограмма зациклится, так как значение a не будет уменьшаться
Показать ответ и разборСкрыть ответ и разбор

Верный ответ

  • DПрограмма зациклится, так как значение a не будет уменьшаться

Разбор

Значение a меняется только в этой строке. Без неё a остаётся положительным, условие a > 0 всегда истинно, и цикл не заканчивается. Синтаксической ошибки нет, так как программа остаётся записанной правильно.

Ошибка в задании

Опишите ошибку в условии, вариантах или разборе. Не больше 1000 знаков.

Похожие задания по этой теме

Все 14 заданий темы

Репетиторы по информатике

Тренажёр

Потренируйте эту тему

14 заданий по одному, с ответом и разбором сразу. Без лимита времени.

Свой пробник

Соберите пробник с таймером

Как на ЕНТ: 2 минуты на задание.

Из каких заданий
Сколько заданий