Это пост грабителя. Сообщение полицейского здесь .
Ваша задача - взять целочисленный вход N и вывести N-ую цифру в последовательности OEIS A002942 .
Последовательность состоит из квадратных чисел, написанных в обратном порядке:
1, 4, 9, 61, 52, 63, 94, 46, 18, 1, 121, 441, ...
Обратите внимание, что ведущие нули обрезаются ( 100 становится 1 , а не 001 ). Конкатенация в строку (или одно длинное число дает):
1496152639446181121441
Вы должны вывести N-ую цифру в этой строке / числе. Вы можете принять N за 0 или 1 (укажите, какой из них вы выбрали).
Контрольные примеры (1-индексированные):
N = 5, ==> 1
N = 17, ==> 1 <- Important test case! It's not zero.
N = 20, ==> 4
N = 78, ==> 0
N = 100, ==> 4
N = 274164, ==> 1
Ваш код должен работать для чисел до N = 2 ^ 15 (если ваш язык по умолчанию не может обрабатывать 32-битные целые числа, в этом случае N может быть меньше).
Грабители:
Вы должны попытаться взломать посты ментов.
Ваш код должен быть на том же языке, что и пост полицейского, и иметь расстояние Левенштейна, точно равное расстоянию, указанному полицейским. Ваш код не может быть длиннее исходного решения (но он может быть того же размера).
Вы можете проверить расстояние Левенштейна здесь!
Победителем станет грабитель, взломавший большинство постов.
источник
Ответы:
Хаскелл , Лайкони
Попробуйте онлайн!
Это
(*1)
было необходимо для проверки типа.источник
JavaScript, Арнаулд
источник
Array(m+1)
это исправлено.cQuents 0 , Стивен
Попробуйте онлайн! Я понятия не имею, как этот код работает, но он все еще работал после удаления
*
.источник
Wolfram Language (Mathematica) , Jenny_mathy
Попробуйте онлайн!
Альтернативная версия также на расстоянии 43:
Попробуйте онлайн!
источник
Машинный код 6502 (C64), Феликс Пальмен
Я проверил это со всеми контрольными случаями вопросов и довольно многими дополнениями (например, 2 ^ 15 ... это заняло некоторое время), и, похоже, он работает так же, как и оригинал с LD = 1.
Демонстрация в сети , использование: sys49152, n, где n - 0-индексированный вход.
источник
Луа , Катенкё
Попробуйте онлайн!
Я не знаю, Луа, но это было просто, просто заменил пробел новой строкой.
источник
(0+)(%d+)$
с(0+)(%d+)
, так что это было около регулярного выражения ^^Python 3 , HyperNeutrino
Попробуйте онлайн!
источник
''
вместо""
lambda i:"".join(str( (-~k)**2)[::-1]for k in range(i+1))[i]
.Питон 2 , Дилнан
Попробуйте онлайн!
Примечание: это представление полицейского было ошибочным и не работало для входов ниже 5. Пока я работал над этим, я построил это решение, которое имеет правильное расстояние Левенштейна И исправляет ошибку.
источник
Perl 5, (-p) Xcali
Обновлено после комментария, Левенштейн Расстояние между
и
это 55
Попробуйте онлайн
источник
-a
против-p
флагов. Два предложенных мной решения использовали одинаковые флаги. Я бы подумал, что флаг будет просто прикреплен к передней части без пробела, но я хочу, чтобы другие склонялись к этому.Java 8, Кевин Круйссен
Попробуйте онлайн!
Журнал изменений
.replaceAll()
наnew Long()
.источник
n->{String r="";for(int i=1;r.length()<=n+1;r+=new Long(new StringBuffer(i*i+++"").reverse()+""));return r.charAt(n);}
( 118 байт, 92 LD по сравнению с другим моим ответом.)Октава , Стьюи Гриффин
Попробуйте онлайн!
На самом деле я пытался найти свой собственный ответ в Octave и заметил существующий. Мой был уже значительно короче, поэтому добавление комментария в конце было достаточно, чтобы добраться до требуемого расстояния 63.
источник
input()
и все, что с этимPHP, Джо.
Попробуйте онлайн!
(Я планировал поменять неравенство, чтобы увеличить ЛД ...)
источник
Машинный код 6502 (C64), Феликс Пальмен
Также может быть «простая» трещина, но, похоже, она работает как оригинал.
Наличие LD = 1 просто так заманчиво попытаться взломать его (извините, Феликс). :)
Демонстрация в сети , использование: sys49152, n, где n - 0-индексированный вход.
источник
E9
(команда вычитания),EB
которая не определена в машинном коде 6502, но происходит так же на чипах NMOS 6502 и 6510. Эта программа, например, аварийно завершает работу на C64 DTV1. Но вряд ли найдется настоящий C64, который не выполнит его правильно, так что это можно считать допустимым взломом? Я мог бы попросить мнения о мета ....