Сгенерируйте n- е число Нараяны-Зидека-Капелла с учетом ввода n . Побеждают несколько байтов.
f (1) = 1, f (n) - сумма предыдущих (n / 2) слагаемых Нараяны-Зидека-Капелла.
Тестовые случаи:
f(1)=1
f(9)=42
f(14)=1308
f(15)=2605
f(23)=664299
Сгенерируйте n- е число Нараяны-Зидека-Капелла с учетом ввода n . Побеждают несколько байтов.
f (1) = 1, f (n) - сумма предыдущих (n / 2) слагаемых Нараяны-Зидека-Капелла.
Тестовые случаи:
f(1)=1
f(9)=42
f(14)=1308
f(15)=2605
f(23)=664299
Ответы:
Желе,
1110 байтПопробуйте онлайн!
Принимает в
n
качестве аргумента и печатает результат.объяснение
источник
Рубин,
3432 байтаПри этом используется формула со страницы OEIS для чисел Нараяны-Зидека-Каппелла .
Редактировать: Избавился от скобок, используя приоритет оператора благодаря feersum и Нейлу.
источник
x%2
?x%2*
хотя бы.x<2?
... это делает ее более понятной, спасибо!Python 2,
48423836 байтАлгоритм взят со страницы OEIS.
n<3
может быть изменено наn<4
без эффекта. Возвращает числоn
th, гдеn
положительное целое число.Попробуйте онлайн
источник
05AB1E, 16 байтов
Итеративное решение, так как 05AB1E не имеет функций.
Попробуйте онлайн
источник
С, 38
Перевод алгоритма OEIS. Здесь просто не хватает кода C!
источник
n<3?:(...)
работает?Python 3, 67 байт
Функция, которая принимает входные данные через аргумент и печатает в STDOUT. Это прямая реализация определения.
Как это устроено
Попробуйте это на Ideone
источник
Pyth, 12 байт
Попробуйте онлайн. Тестирование.
Определяет функцию,
y(n)
которая возвращаетn
th число Нараяны-Зидека-Капелла.источник
Mathematica, 38 байт
Анонимная функция. Принимает 𝑛 как ввод и возвращает 𝑓 (𝑛) как вывод. Основано на решении Ruby.
источник
Haskell, 34 байта
Пример использования:
f 14
->1308
.Прямая реализация определения.
источник
Java, 63 байта
источник
Go, 63 байта
Почти прямой порт от ответа C
источник
PHP, 81 байт
Это полная программа без рекурсии. Рекурсивная функция может быть определена в 52 байта (это может быть возможно), но это просто довольно скучный порт ответа sherlock9 (и он ошибается, если вы спрашиваете f (100) или более), поэтому я поднимаю это длинная и интересная версия
Вызывает много (O [n]) уведомлений, но это нормально.
источник
O(n)
уведомления? А?R, 55 байт
Изменить
10
вfor
цикле иx[9]
получить тот индекс, который хочет пользователь.источник
f=function(n)ifelse(n<4,1,2*f(n-1)-n%%2*f(floor(n/2)))
JavaScript,
5452На основании ответа C.
parseInt
вместоMath.floor
источник
Клен,
4644 байтаИспользование:
источник
R, 63 байта
a=0
добавляется по умолчанию, потому что это экономит мне две фигурные скобки. Функция рекурсивно вызывает себя по мере необходимости.источник