Ответ представьте на языке Python.
По каналу связи передается последовательность положительных целых чисел, все чис-ла не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число из последовательности, которое делится на 10.
Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида:
Получено .. чисел
Полученное контрольное значение: ….
Вычисленное контрольное значение:…
Контроль пройден (или – контроль не пройден)
Answers & Comments
Ответ:
cnt = 0
a = [-1, -1]
chk = 0
while True:
cnt+=1
a[0] = a[1]
try:
a[1] = int(input(f'Введите {cnt}-е число: ' if a[0] != 0 else 'Введите контрольное число: '))
if a[1] < 0 or a[1] > 1000: raise ValueError
except ValueError:
print('Ошибка ввода: Вводите натуральное число не превышающее 1000!')
if a[0] == 0: break
if a[1] % 10 == 0 and (a[1] > chk or (chk == 0)): chk = a[1]
print()
print(f'Получено {cnt-1} чисел')
print('Полученное контрольное значение:', a[1])
print('Вычисленное контрольное значение:', chk)
print('Контроль пройден' if a[1] == chk else 'Контроль не пройден')
2 max_2 = 0
3 number = int(input())
4
5 while number != 0:
6 if number > max_1:
7 max_1 = number
8 elif number > max_2:
9 max_2 = number
10 number = int(input())
11
12 control_num = int(input())
13 print('Контроль пройден' if max_1+max_2
== control_num else 'контроль не пройден')