Страница: 1 |
Страница: 1 |
Вопрос: Сумма чисел
Добавлено: 22.04.07 11:53
Автор вопроса: Dark
Найти сумму четырех чисел, исключая самое большое и самое маленькое. Числа целые, находятся в массиве.
Если еще какой-нибудь вариант кроме этих 2:
1) Отсортировать пузырьком, взять два средних в получившемся массиве и сложить.
2) Найти 2 средних числа с помощью кучи вложенных if'ов и сложить.
По-моему эти два способа очень неаккуратные. Можно ли найти красивое решение?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 22.04.07 13:40
С помощью цикла из 4-х итераций найти мин и макс, а потом найти сумму
всех чисел кроме мин и макс. Что-то вроде:
Dim min As Int32 = 0
Dim max As Int32 = 0
For i As Int32 = 0 To a.GetUpperBound(0)
If a(i) > a(max) Then
max = i
Continue For
End If
If a(i) < a(min) Then
min = i
End If
Next
Dim sum as Int32 = 0
For i As Int32 = 0 To a.GetUpperBound(0)
If i <> min AndAlso i <> max Then
sum += a(i)
End If
Next
Console.WriteLine(sum.ToString())
Я бы так сделал.
КОд не проверял, могут быть очепятки. Но идея, думаю, ясна.
Номер ответа: 2
Автор ответа:
shuffle
Администратор
ICQ: 201502381
Вопросов: 15
Ответов: 737
Профиль | | #2
Добавлено: 23.04.07 00:21
Можно и не пузырьком сортировать
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 23.04.07 16:28
Интересно, будет ли квиксорт быстрее на массиве из 4 элементов