Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Наиболее близкое число |
Автор: MoLeX 16.10.2011, 18:44 | ||||
Добрый вечер. Что-то даже не могу представить логику для нахождения максимально близкого числа с заданным. Например, у нас массив чисел (ключ это и есть число)
Допустим загадаем число 16, соответственно максимально близкое будет - 18. И еще один пример:
В этом случае максимально близким числом будет 10. Как это реализовать? |
Автор: patap 16.10.2011, 19:20 | ||
|
Автор: Absinthe 16.10.2011, 19:32 | ||
|
Автор: Evghenusi 16.10.2011, 23:26 | ||
решил тоже поучаствовать в теме, не знаю мой вариант ГК или нет, решать вам.
|
Автор: Shogun 17.10.2011, 11:36 |
Evghenusi, +1 |
Автор: Evghenusi 17.10.2011, 12:58 | ||
предыдущий вариант с ошибкой, а новый со страшной проверкой ![]()
|
Автор: Muerto 17.10.2011, 14:27 |
Нужно отсортировать затем от нашего числа посмотреть влево и вправо, и выбрать. |
Автор: Evghenusi 17.10.2011, 16:10 | ||
![]() |
Автор: Shogun 17.10.2011, 21:09 | ||
|
Автор: Evghenusi 17.10.2011, 22:18 |
Shogun, спасибо за пример, хотя ждал его от Muerto. Shogun, не знаю что оптимальнее (по скорости, потреблении памяти) ksort или sort, но если равнозначно, да ещё и присутствуют функции in_array и array_keys то почему бы не sort?, и почему не воспользоваться ф. array_keys один раз? ![]() Зачем выводить сообщение о нахождении в массиве элемента с ключом равным значению искомого числа, а после опустошать ($ar[$n] = '') его значение тоже не совсем понятно. За пример проверки "получаемых" данных отдельное спасибо, думал abs не понадобится (хотя видел в примерах от patap и Absinthe), а вы доказали что необходим. |
Автор: MoLeX 18.10.2011, 06:05 | ||
Всем спасибо. Больше всех понравился пример Shogun. Но его немного модернизировал
|
Автор: Shogun 18.10.2011, 10:23 | ||
MoLeX, isset тут не совсем правильно используется, тогда уж так:
|