Задачка с хабра | |
---|---|
medstrax Забанен Автор Сообщений: 5964 Дата регистрации: 23.03.2007 |
habrahabr.ru
В комментах приведено немало решений (есть и совершенно адские) на разных языках, все они кажутся неоптимальными. Предлагаю конкурс на самое быстрое решение на фоксе, хотя и на любом другом языке тоже приветствуется. Выводом можно не заморачиваться, достаточно по заданному числу определить его координаты в 2-мерном массиве - один цикл от 1 до N^2, где N - сторона квадрата. Либо по заданным координатам 1<=X,Y<=N определить выводимое в эту ячейку число - два цикла по координатам. Т.е. в конечном счете нужно заполнить массив NxN нужными числами (без вывода на экран для чистоты эксперимента, да и при больших N нет смысла выводить) P.S. Можно написать и реализацию для произвольного прямоугольника Исправлено 1 раз(а). Последнее : medstrax, 31.01.14 13:04 |
Re: Задачка с хабра | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
По-моему там есть вполне адекватные алгоритмические/математические решения (от Mrrl). Не вникая глубоко в суть вопроса
ООП-выдержанный бред, конечно, позабавил. ------------------ WBR, Igor |
Re: Задачка с хабра | |
---|---|
ry Сообщений: 2113 Дата регистрации: 24.09.2007 |
Если с выводом на экран не заморачиваться, то вот код, состряпанный под чашечку кофе в обеденный перерыв. Можно и в один цикл уложить, но заполнение первой строки решил вынести, чтобы не делать дополнительные проверки внутри цикла. Насчет эффективности не знаю, просто одно из возможных решений. Заполнение массива 1000х1000 идет около 3 сек.
|
Re: Задачка с хабра | |
---|---|
medstrax Забанен Автор Сообщений: 5964 Дата регистрации: 23.03.2007 |
Ага, его последние 2 решения впечатлили. Но проверять лень, а в уме что-то ниасилил Просто обращаю внимание, что в одном решении он задал константой размер массива 7, а в другом 6 - это сразу наводит на мысль, что решения неуниверсальны, а зависят от четности размера |
© 2000-2024 Fox Club  |