Соревнование
Получив целочисленное входное значение, верните первое число Фибоначчи, которое содержит входные данные внутри себя вместе с индексом этого числа Фибоначчи (индексы, начинающиеся с 0 или 1 - до вас, но, пожалуйста, укажите, какой именно в вашем ответе). Например, если ввести 12, программа вернется, так 26: 121393
как 12 находится в числе ( 12 1393), и оно находится в индексе 26 чисел Фибоначчи.
Примеры
Учитывая вход:
45
Ваша программа должна вывести:
33: 3524578
Входные данные:
72
Выход:
54: 86267571272
Входные данные:
0
Выход:
0: 0
Входные данные:
144
Выход:
12: 144
счет
Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке.
Ответы:
Желе , 10 байт
Попробуйте онлайн!
Как это устроено
источник
D
...Python 2 , 56 байт
Попробуйте онлайн!
источник
Perl 6 , 30 байт
Попробуйте онлайн!
first
это функция, которая возвращает первый элемент последовательности, которая проходит тест, и она удобно берет:kv
наречие, которое говорит ей, что нужно вернуть и ключ (индекс), и совпадающее значение.источник
:p
наречие вместо:kv
.Пакет, 104 байта
Работает
n=0..45
из-за ограниченного диапазона целочисленной арифметики Batch. Объяснение: Batch не имеет встроенного теста на совпадение, но у него есть оператор, который может заменять литеральные строки другими литеральными строками, поэтому, напримерif "%s:l=%"=="%s%"
, true, если%s%
он не пустой, но не содержитl
. Затем использованиеcall
трюка для подстановки%1
(ввода) в оператор замены, однакоcall
не работает с операторами потока управления, поэтому необходимо промежуточное временное присваивание.источник
Желе , 15 байт
Попробуйте онлайн!
источник
Javascript ES6, 68 символов
Тестовое задание:
источник
Python 3, 76 байт
источник
Эмоджикод , 133 байта
Попробуйте онлайн!
источник
Дьялог АПЛ, 39 байт
Использование хвостовой рекурсии. Не пытайтесь 72, это сломает вашу машину, потому что она пересчитывает фибоначчи во всем вызове.
Попробуйте онлайн!
источник
Mathematica, 119 байт
1-индексированных
Попробуйте онлайн!
источник
На самом деле , 13 байтов
Попробуйте онлайн!
Объяснение:
источник
R 65 байт
Стандартная рекурсия для генерации Fibnums, но вместо завершения на основе
n
, завершается, когдаb
соответствует регулярному выражениюx
. Это на самом деле работает на удивление хорошо. Я предполагал, что использование регулярных выражений с числами потребует много хлопот, конвертируя их в строки, но в этом нет необходимости :)Это также должно перескочить рекурсию на 1 шаг, включив
b
вместо нееa
и затем вычтя1
изn
. Это чтобы убедиться, чтоf(0)
работает правильно.Это терпит неудачу для большинства значений, когда ввод превышает
1001
, из-за maxint. Если мы заменимa
иb
для bigints, это работает для более высоких входных данных (текущее тестирование вx = 11451
)источник
JavaScript ES6,
797875 байт-1 байт от Step Hen
-3 байта Нилом
источник
eval()
вместо того,{ return}
чтобы сохранить байт, и вы можете удалить,t=
так как вы не используете рекурсию:i=>eval('d=a=b=1;while(!~(a+"").indexOf(i+""){c=b;b=a+b;a=c;d++};d+": "+a')
String.prototype.indexOf
автоматически преобразует свой параметр в строку, нет необходимости делать это явно. Также вы, похоже, скопировали опечатку @ StepHen (у вас больше(
s, чем)
s).C # (.NET Core) , 99 байт
Попробуйте онлайн!
Принимает ввод как целое число, возвращает строку с выводом.
источник
Haskell , 84 байта
Попробуйте онлайн!
источник
PHP, 80 байт
Сценарий довольно прост, просто хранит текущие и последующие члены последовательности в $ a и $ b на всем протяжении. Чтобы учесть 0-й член 0, $ a и $ b изначально присваиваются значения для -1-го члена (1) и 0-го члена (0) соответственно.
Оба значения пересчитываются в одном выражении, которое представляет собой два присваивания в одном; эффективно:
Если входное значение совпадает с началом термина, функция strpos () вернет 0 (что неверно и даст ложный отрицательный результат), но в Wonderphul World of PHP, хотя
false == 0
это правда иfalse < 0
ложно,false < -1
это правда! И так, использование этого сравнения экономит пять байтов по сравнению с!==false
.источник
Japt ,
1714 байтСохранено 3 байта благодаря @JustinMariner
Попробуйте онлайн!
объяснение
источник
_ŬøU}a@[XMgX]
. Используетсяs1 q
для получения последнего предмета, который позволяет бросить<space>s
PHP ,
163141 байтПопробуйте онлайн!
Использует
$b[0] = 0;
и$b[1] = 1;
для начала последовательности FIBисточник
Perl 5 , 67 + 1 (-p) = 68 байт
Попробуйте онлайн!
источник
PHP , 93 байта
Простой цикл по последовательности Фибоначчи. Проверка нашего входного номера выполняется в
strpos(" $a[$i]","$argv[1]")
; дополнительный пробел потому,strpos
что вернет false-y, если в начале строки найдена «игла». Мы заканчиваем, если вход найден и выводим требуемую строку.Попробуйте онлайн!
источник
Common Lisp, 105 байт
Попробуйте онлайн!
источник