Предмет: Информатика,
автор: Imperatormatvey
Ответ представьте на языке Python.
По каналу связи передается последовательность положительных целых чисел, все чис-ла не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число из последовательности, которое делится на 10.
Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида:
Получено .. чисел
Полученное контрольное значение: ….
Вычисленное контрольное значение:…
Контроль пройден (или – контроль не пройден)
pinguinbird:
Пользователь числа вводит вручную с клавиатуры?
Da
все чис-ла не превышают 1000 - не совсем понятно, имеется в виду количество чисел не превышает 1000 или величина чисел не превышает 100
1000
наверное всё таки значения не превышают 1000, сейчас поправлю в коде...
готово )
Ответы
Автор ответа:
2
Ответ:
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 'Контроль не пройден')
контрольное значение chk не считается, следовательно проверка не выполняется!
эм, не очень понял...все работает корректно, что вы имеете в виду?
приглядитесь к строчке над print(), там как раз переменной chk присваивается максимальное число кратное 10
а затем в самом конце chk сравнивается с a[1], где, собственно, и лежит контрольное число
ок, chk не заметил
класс, если эта ваша двойка, то не могли бы вы ее исправить, а то как-то нечестно получается
нет, я на 5 оценивал
ок спасибо!
Автор ответа:
0
1 max_1 = 0
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 'контроль не пройден')
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 'контроль не пройден')
условие задания читайте!
Похожие вопросы
Предмет: Английский язык,
автор: Tizhat2005
Предмет: Қазақ тiлi,
автор: asemnaimbaeva2006
Предмет: Қазақ тiлi,
автор: AnimeshkaMangle
Предмет: Математика,
автор: Ника11673
Предмет: Алгебра,
автор: ViktoriaYkimova