Genere el enésimo número de Narayana-Zidek-Capell con una entrada n . Pocos bytes ganan.
f (1) = 1, f (n) es la suma de los términos del piso anterior (n / 2) Narayana-Zidek-Capell.
Casos de prueba:
f(1)=1
f(9)=42
f(14)=1308
f(15)=2605
f(23)=664299
Respuestas:
Jalea,
1110 bytesPruébalo en línea!
Toma
n
como argumento e imprime el resultado.Explicación
fuente
Ruby,
3432 bytesUtiliza una fórmula de la página OEIS para los números de Narayana-Zidek-Cappell .
Editar: Eliminé los paréntesis usando la precedencia del operador gracias a feersum y Neil.
fuente
x%2
?x%2*
al menos.x<2?
... esto lo hace mucho más claro, graciasPython 2,
48423836 bytesAlgoritmo tomado de la página OEIS.
n<3
puede cambiarse an<4
sin efecto. Devuelve eln
número th, donden
es un entero positivo.Pruébalo en línea
fuente
05AB1E, 16 bytes
Una solución iterativa como 05AB1E no tiene funciones.
Pruébalo en línea
fuente
C, 38
Una traducción del algoritmo OEIS. ¡Simplemente no hay suficiente código C por aquí!
fuente
n<3?:(...)
funcionaPython 3, 67 bytes
Una función que toma datos a través de argumentos e imprime en STDOUT. Esta es una implementación directa de la definición.
Cómo funciona
Pruébalo en Ideone
fuente
Pyth, 12 bytes
Pruébalo en línea. Banco de pruebas.
Define una función
y(n)
que devuelve eln
número de Narayana-Zidek-Capell.fuente
Mathematica, 38 bytes
Función anónima. Toma 𝑛 como entrada y devuelve 𝑓 (𝑛) como salida. Basado en la solución Ruby.
fuente
Haskell, 34 bytes
Ejemplo de uso:
f 14
->1308
.Una implementación directa de la definición.
fuente
Java, 63 bytes
fuente
Go, 63 bytes
Más o menos un puerto directo de la respuesta C
fuente
PHP, 81 bytes
Este es un programa completo sin recursividad. Se puede definir una función recursiva en 52 bytes (podría ser posible superar eso), pero eso es solo un puerto bastante aburrido de la respuesta de sherlock9 (y falla si pides f (100) o más), así que estoy poniendo esto versión más larga y más interesante
Causa muchos avisos (O [n]) pero está bien.
fuente
O(n)
avisos? ¿Eh?R, 55 bytes
Cambie
10
elfor
ciclo yx[9]
obtenga el índice que desee el usuario.fuente
f=function(n)ifelse(n<4,1,2*f(n-1)-n%%2*f(floor(n/2)))
JavaScript
5452Basado en la respuesta C.
parseInt
lugar deMath.floor
fuente
Arce,
4644 bytesUso:
fuente
R, 63 bytes
a=0
se agrega por defecto porque me ahorra dos llaves. La función se llama recursivamente a sí misma según sea necesario.fuente