Простой:
Возьмите положительное целое число n меньше 1000 и выведите целые числа от 1 до n, чередующиеся с целыми числами от n до 1 . Вы должны объединить числа так, чтобы они появлялись без разделителей между ними.
Тестовые случаи:
n = 1
11
n = 4
14233241
n = 26
12622532442352262172081991810171116121513141413151216111710189198207216225234243252261
n = 100
110029939849759669579489399210911190128913881487158616851784188319822081218022792378247725762675277428732972307131703269336834673566366537643863396240614160425943584457455646554754485349525051515052495348544755465645574458435942604161406239633864376536663567346833693270317130722973287427752676257724782379228021812082198318841785168615871488138912901191109299389479569659749839921001
Это код-гольф, поэтому выигрывает самая короткая подача в байтах на каждом языке. Пояснения приветствуются.
f'{x}{n-~-x}'
lambda n:''.join('x+1'+'n-x'for x in range(n))
для 46 байт (замените.'
в списке понимании с обратными кавычками)`\`x+1\``
рендеринга`x+1`
-5 благодаря Орджану Йохансену
Haskell , 33 байта
Попробуйте онлайн!
источник
do
Выражение короче, чем>>=
плюс лямбда. (2) Однако,show
можно комбинировать с помощью>>=show
.Баш , 25 байт
Попробуйте онлайн!
Печатает убывающую последовательность, увеличивается число строк и printf соединяет строки
Разделенный пробелом, 20 байтов: seq $ 1 -1 1 | nl | xargsисточник
seq $1 -1 1|nl|tr -d ' \n\t'
8 байтов большеtime printf %s'seq 1000000 -1 1|nl'; grep name /proc/cpuinfo
real 0m7.985s user 0m6.092s sys 0m0.392s model name : Intel(R) Pentium(R) D CPU 3.00GHz model name : Intel(R) Pentium(R) D CPU 3.00GHz
R 35 байт
Попробуйте онлайн
rbind(1:n,n:1)
создает матрицу из 2 строк с 1 до n в первой строке и от n до 1 во второй.cat
Функция коллапсирует эту матрицу, чтение каждой колонки.источник
n
в командной строке (вместо прохождения через стандартный ввод).05AB1E ,
65 байтСохраненный байт с использованием нового встроенного чередования, как предложено rev
Попробуйте онлайн!
объяснение
источник
LÂ.ιJ
.CJam , 10 байтов
Попробуйте онлайн!
объяснение
источник
Рубин , 29 байт
Объяснение:
Попробуйте онлайн!
источник
Пробел , 71 байт
Попробуйте онлайн!
объяснение
Первая пара инструкций необходима для правильной настройки стека, входные команды Whitespace записывают в кучу, поэтому нам нужно скопировать b (входное значение) обратно в стек. Мы начинаем с a = 0, так как короче объявить 0 вместо 1 (сохраняет байт), и нам нужно только переупорядочить инструкцию приращения, чтобы справиться. После этого мы просто делаем цикл и увеличиваем a, выводим a, выводим b, уменьшаем b, пока b не достигнет 0 (проверяется после уменьшения).
источник
Haskell,
654847 байт1 байт сохранен благодаря Laikoni:
6 байтов сохранено благодаря nimi:
Предыдущий ответ и объяснение:
Здесь уже есть лучший ответ на Haskell, но я новичок как в Haskell, так и в коде, поэтому я могу также опубликовать его :)
Эта функция упаковывает список [1..n] в обратном порядке, в результате получается список кортежей.
Затем он использует
concatMap
для сопоставления лямбда с этим списком кортежей, который приводит к списку списков ...... и объединяет это.
Затем финал
concatMap
отображаетсяshow
в списке и объединяет его в одну строку.f 26 "12622532442352262172081991810171116121513141413151216111710189198207216225234243252261"
источник
=<<
такой же ( в пределах списка монады) , какconcatMap
:f n=show=<<(\(l,r)->[l,r])=<<zip[1..n][n,n-1..1]
.n
в систему[1..n]
: Попробуйте его в Интернете!Pyth, 7 байт
Попробуйте онлайн: демонстрация
Объяснение:
источник
Октава, 29 байт
Попробуйте онлайн!
источник
Perl 6 , 20 байт
Попробуй это
С входом 100000 это занимает примерно 10 секунд, включая компиляцию и вывод на печать.
Expanded:
В
Z~
потребности в~
потому что в противном случае он генерирует список списков, которые будут зачеркнуты пробелами.Нет необходимости ограничивать диапазон, начиная с 1, потому что
Z
останавливается, когда заканчивается любой из входных списков.Это экономит два байта (после этого потребуется пробел
$_
)источник
Java 61 байт
источник
(int n)->{//for loop}
должны работать здесь.System.out.print()
последний оператор в цикл for, но это усложняется, потому что вы используетеi
дважды (и вам нужно увеличить его в выражении).Желе , 5 байт
Попробуйте онлайн!
Как это работает
источник
Рёда ,
2119 байтПопробуйте онлайн!
Это анонимная функция, которая принимает данные из потока.
объяснение
источник
Clojure, 61 байт
Буквально делает то, что просят. Я считаю, что это может быть обойдено менее тривиальным решением.
Посмотри это онлайн
источник
Ацето ,
2522 байтаОбъяснение:
Мы читаем целое число и помещаем его в два стека.
С одной стороны, мы вызываем range_up (
Z
), с другой range_down (z
), затем устанавливаем метку, чтобы иметь возможность вернуться к этому месту позже:Затем мы проверяем, пустой ли текущий стек, и завершаем работу, если так:
В противном случае мы печатаем из обоих стеков и возвращаемся к метке:
источник
R, 41 байт
pryr::f()
создает функцию, которая принимает один вход. Зацикливается1:x
и печатает каждый элемент1:x
вместе с каждым элементомx:1
. Печатает на STDOUT.источник
pryr
function(x)
:)Брахилог ,
109 байтПопробуйте онлайн!
объяснение
источник
МАТЛ,
13119 байт2 байта сохранены благодаря @Luis
Попробуйте это на MATL Online
объяснение
источник
PHP,
363529 байтСохранение одного байта благодаря Jörg Hülsermann.
Сохранено шесть байтов благодаря Кристофу.
источник
for(;$argn;)echo++$i,$argn--;
?Скала, 43 байта
Это не самый лучший, но это мой первый гольф-код.
источник
V , 20 байтов
Попробуйте онлайн!
Объясните:
источник
Cubix , 17 байтов
Попробуйте онлайн!
cubified:
Pushes
1
, читает в input (I
), затем входит в цикл, который меняет вершину стека, выводит его, увеличивает, меняет, выводит верх стека, уменьшает и останавливает, если вершина стека равна 0.источник
К (нгн / к) , 16 байт
Попробуйте онлайн!
источник
r,'|r:
->+|:\
MathGolf , 5 байтов
Попробуйте онлайн!
Объяснение:
источник
╒{ïí,
,╒{ïk,
,╒{íï-
,╒{kï-
,╒{┐í,
,╒{┐k,
,╒x{î\
,{îïí,
,{îïk,
,{îíï-
,{îkï-
,{î┐í,
,{î┐k,
. Однако я не смог найти ни одной программы длиной 4 или меньше. Я не сделал полный поиск, но очень вероятно, что 5 байтов является оптимальным для MathGolf.Common Lisp,
6354 байтаПопробуйте онлайн!
источник
Мышь-2002 ,
3230 байт-2
(z.^ ... )
вместо условного начала цикла вместо(... z.0>^)
Попробуйте онлайн!
Объяснение:
источник
На самом деле , 9 байтов
Попробуйте онлайн! или запустите все тесты
Объяснение:
источник