Автор | Сообщение |
|
Отправлено: 03.04.19 20:52. Заголовок: 27.66 Python: Ошибка в решении
Здравствуйте. При вводе 4 1 2 2 3 программа выдаёт 3 5, хотя правильный ответ будет 3 7. Необходимо вынести строку " minX = 10001 # любое, большее 10000 " из тела цикла и поставить её перед ним. А так получается, что minX запоминает последнее не кратное 4 число, которое не обязательно является минимальным. Если не прав - извиняюсь. Код: Скрытый текст N = int(input()) summa = 0 for i in range(N): ____x = int(input()) ____minX = 10001 # любое, большее 10000 ____summa += x ____if x % 4 != 0 and x < minX: ________minX = x if summa % 4 != 0: ____print(N, summa) elif minX == 10001: ____print(0, 0) else: ____print(N-1, summa-minX)
| Условие: Скрытый текст 66) На вход программы поступает последовательность из N натуральных чисел. Нужно выбрать из них произвольное количество чисел так, чтобы их сумма была максимальной и не делилась на 4. В результате программа должна вывести количество выбранных чисел и их сумму. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0. Входные данные: На вход программе подаётся натуральное число N (N <= 1000), а затем N натуральных чисел, каждое из которых не превышает 10000. Пример входных данных: 3 1 2 1 Выходные данные: Программа должна вывести два числа: сначала количество выбранных чисел, а затем их сумму. Пример выходных данных для приведённого примера входных данных: 2 3
|
|
|
|
Ответов - 3
[только новые]
|
|
|
Отправлено: 04.04.19 08:47. Заголовок: В этих задачах по ес..
В этих задачах по если не всем, то по многим не самые хорошие решения на питоне, много где видел места, где могут экзаменаторы снять баллы, а в некоторых так в принципе неправильные решения. Видно, что человек, составляющий решения, разбирается в языке (чего только стоит лямбда-выражения и прочий синтаксический сахар), но использовать эти решения не советую.
|
|
|
|
| Администратор
|
Сообщение: 1862
|
|
Отправлено: 04.04.19 16:55. Заголовок: Bobreogen пишет: в н..
Bobreogen пишет: цитата: | в некоторых так в принципе неправильные решения |
|
Уточните, пожалуйста, где неправильные.
|
|
|
|
| Администратор
|
Сообщение: 1861
|
|
Отправлено: 04.04.19 16:54. Заголовок: Mauzzz0 пишет: Необх..
Mauzzz0 пишет: цитата: | Необходимо вынести строку " minX = 10001 # любое, большее 10000 " из тела цикла и поставить её перед ним. А так получается, что minX запоминает последнее не кратное 4 число, которое не обязательно является минимальным. |
|
Спасибо, вы правы. Исправлено.
|
|
|
|