|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.04.2015, 11:10 | #1 |
Форумчанин
Регистрация: 29.08.2010
Сообщений: 159
|
Переоформление кода
Учусь писать программы,решаю маленькие задачки но вот в чем дело я знаю что можно как то более красиво сделать задачу, подскажите как.
Задача Петя успевает по математике лучше всех в классе, поэтому учитель задал ему сложное домашнее задание, в котором нужно в заданном наборе целых чисел найти сумму всех положительных элементов, затем найти где в заданной последовательности находятся максимальный и минимальный элемент и вычислить произведение чисел, расположенных между ними. Так же известно, что минимальный и максимальный элемент встречаются в заданном множестве чисел только один раз. Поскольку задач такого рода учитель дал Пете около ста, то Петя как сильный программист смог написать программу, которая по заданному набору чисел самостоятельно находит решение. А Вам слабо? Входные данные В первой строке входного файла INPUT.TXT записано единственное число N – количество элементов массива. Вторая строка содержит N целых чисел, представляющих заданный массив. Все элементы массива разделены пробелом. Каждое из чисел во входном файле не превышает 102 по абсолютной величине. Выходные данные В единственную строку выходного файла OUTPUT.TXT нужно вывести два числа, разделенных пробелом: сумму положительных элементов и произведение чисел, расположенных между минимальным и максимальным элементами. Значения суммы и произведения не превышают по модулю 3*104. Моё решение Код:
|
17.04.2015, 11:40 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не самый оптимальный вариант, зато короткий :
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 17.04.2015 в 11:46. |
17.04.2015, 13:22 | #3 | |
Форумчанин
Регистрация: 29.08.2010
Сообщений: 159
|
Цитата:
|
|
17.04.2015, 13:40 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А чего тут расписывать?
LINQ используется, чтоб не писать самому циклы и т.д., изучайте его и станет понятно. Для получения индексов мин/макс сначала ищутся сами их значения, а потом ищется индекс элемента с этим значением https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx Конечно можно оптимизировать, чтоб два прохода не делать, но влом и смысл был в краткости и простоте http://stackoverflow.com/questions/4...ray-using-linq List<T>.GetRange https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx для получения указанной части списка.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 17.04.2015 в 13:42. |
19.04.2015, 09:41 | #5 | |
Форумчанин
Регистрация: 29.08.2010
Сообщений: 159
|
Цитата:
Aggregate(1, (acc, val) => acc * val); Select(int.Parse).ToList(); |
|
19.04.2015, 10:21 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Говорю ж, изучайте LINQ и станет понятно.
1 произведение всех чисел списка http://stackoverflow.com/questions/7...ithm-explained https://msdn.microsoft.com/en-us/lib...vs.100%29.aspx http://www.dotnetperls.com/aggregate 2 преобразование списка строк в список чисел. То есть каждый элемент исходного списка превращается в то, что вернул метод int.Parse. https://msdn.microsoft.com/en-us/lib...vs.100%29.aspx http://www.dotnetperls.com/select
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Компиляцию кода MAtlab в C++Builder и использование преобразованного кода .м в C++Builder | Leg1oner | C++ Builder | 0 | 07.01.2014 18:15 |
Оптимизация кода | LatuSerge | Общие вопросы Delphi | 10 | 27.12.2011 01:51 |
Распознавание Аски кода и скан кода | MyLastHit | Общие вопросы Delphi | 8 | 06.12.2010 18:34 |
Переоформление проекта GUI Form1 | DENSHER | Помощь студентам | 0 | 30.03.2010 15:37 |
Выдернуть куски кода из html-кода | trafbite | Помощь студентам | 7 | 18.08.2007 13:51 |