Entrada:
Entero n
que es >=0
o >=1
( f(0)
es opcional)
Salida:
El n
'th número en la secuencia a continuación, O la secuencia hasta e incluyendo el n
' th número.
Secuencia:
(0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99
¿Cómo se construye esta secuencia?
f(n=0) = 0
(opcional)
f(n=1) = f(0) + n
o f(n=1) = 1
f(n=2) = f(1) - n
f(n=3) = f(2) * n
f(n=4) = f(3) / n
f(n=5) = f(4) + n
etc.
O en seudocódigo:
function f(integer n){
Integer result = 0
Integer i = 1
Loop as long as i is smaller than or equal to n
{
if i modulo-4 is 1:
result = result plus i
if i modulo-4 is 2 instead:
result = result minus i
if i modulo-4 is 3 instead:
result = result multiplied with i
if i modulo-4 is 0 instead:
result = result integer/floor-divided with i
i = i plus 1
}
return result
}
Pero como habrás notado, hay dos patrones en la secuencia:
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
por lo tanto, cualquier otro enfoque que dé como resultado la misma secuencia también es completamente correcto.
Reglas de desafío:
- Las entradas indexadas 0 y 1 indexadas darán como resultado el mismo resultado (por lo que
f(0)
es opcional para las entradas indexadas 0 si desea incluirlo). - Se le permite generar el
n
'número de esta secuencia. O toda la secuencia e incluyendo eln
número 'th. (Porf(5)
lo tanto, puede resultar en cualquiera5
o0,1,-1,-3,0,5
.)- Si elige generar la secuencia hasta e incluyendo el
n
número 'th, el formato de salida es flexible. Puede ser una cadena delimitada por lista / matriz, coma / espacio / nueva línea o impresa en STDOUT, etc.
- Si elige generar la secuencia hasta e incluyendo el
- El divide (
/
) es la división de entero / piso, que se redondea hacia 0 (no hacia el infinito negativo como es el caso en algunos idiomas).
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolfing. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede utilizar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
Casos de prueba adicionales anteriores n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0