Автор | Сообщение |
|
| постоянный участник
|
Сообщение: 385
|
|
Отправлено: 19.03.20 20:10. Заголовок: егэ19 № 118
Задание не корректно, с такой формулировкой в S можно получить все что угодно, например для массива [99, 99, -1,-1, -1.... -1, 99] - всего 15 элементов получается число 81702, а для массива [99,-1,-1,-1,-1,-1,99,-1,-1,-1,-1,-1,-1,-1,99] - 81342
|
|
|
Ответов - 6
[только новые]
|
|
|
Отправлено: 19.03.20 20:30. Заголовок: Ответ
Условие задачи следующее: В результате выполнения программы напечатано число 3. Какое наибольшее значение может иметь переменная S после выполнения программы? Dat = [0]*100 N = 15 m = 0 S = 1 for k in range(0, N): Dat[k] = int(input()) for k in range(0, N): if Dat[k] > 0: m += 1 S *= Dat[k] % 10 print(m) Давайте посмотрим на алгоритм. Что он делает? В переменной S считается произведение последних цифр для положительных элементов. И считается их количество в переменной m. Программа вывела 3, следовательно таких чисел 3. Теперь, давайте переформулируем задачу, понимая алгоритм. Какое наибольшее значение может иметь произведение последних цифр для трех положительных элементов? По-моему, ответ очевиден. 9 * 9 * 9 = 729.
|
|
|
|
Отправлено: 11.04.20 16:34. Заголовок: Минак А.Г. пишет: ..
Минак А.Г. пишет: [quote]` А как в нашли значение элемента массива ?
|
|
|
|
Отправлено: 11.04.20 16:40. Заголовок: Как нашли значение элемента массива? Спасибо
*PRIVAT*
|
|
|
|
Отправлено: 19.03.20 20:34. Заголовок: Ответ
Давайте посмотрим на алгоритм. Что он делает? В переменной S считается произведение последних цифр для положительных элементов. И считается их количество в переменной m. Программа вывела 3, следовательно таких чисел 3. Теперь, давайте переформулируем задачу, понимая алгоритм. Какое наибольшее значение может иметь произведение последних цифр для трех положительных элементов? По-моему, ответ очевиден. 9 * 9 * 9 = 729.
|
|
|
|
| постоянный участник
|
Сообщение: 386
|
|
Отправлено: 19.03.20 20:39. Заголовок: #include <iostre..
#include <iostream> using namespace std; int main() { int Dat[100]; int N =15; int k, m = 0, S = 1; for(k=0; k<N; k++) cin >> Dat[k]; for(k=0; k<N; k++) { S += Dat[k]; эту строку надо убрать из файла if (Dat[k]>0){ m++; S *= Dat[k] % 10; } } cout << m; return 0; } С вашей формулировкой не спорю, действительно 729
|
|
|
|
| Администратор
|
Сообщение: 2034
|
|
Отправлено: 19.03.20 20:45. Заголовок: oval пишет: S += Dat..
oval пишет: цитата: | S += Dat[k]; эту строку надо убрать из файла |
|
Это была опечатка, уже исправлено.
|
|
|
|