Entrada:
Inteiro n
que é >=0
ou >=1
( f(0)
é opcional)
Resultado:
O n
'th número na sequência abaixo, OU a sequência até e incluindo o n
' th number.
Seqüência:
(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
Como é construída essa sequência?
f(n=0) = 0
(opcional)
f(n=1) = f(0) + n
ou 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.
Ou no pseudo-có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
}
Mas como você deve ter notado, existem dois padrões na sequência:
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
portanto, quaisquer outras abordagens que resultem na mesma sequência também são completamente boas.
Regras do desafio:
- Entradas indexadas a 0 e indexadas a 1 resultarão no mesmo resultado (é por isso que
f(0)
é opcional para entradas indexadas em 0 se você deseja incluí-las). - Você tem permissão para emitir o
n
'número th desta sequência. Ou a sequência inteira acima e incluindo on
'número th. (Portanto,f(5)
pode resultar em um5
ou0,1,-1,-3,0,5
.)- Se você optar por imprimir a sequência até o
n
número número um, o formato de saída será flexível. Pode ser uma lista / matriz, sequência delimitada por vírgula / espaço / nova linha ou ser impressa em STDOUT, etc.
- Se você optar por imprimir a sequência até o
- A divisão (
/
) é a divisão inteiro / piso, que arredonda para 0 (não para o infinito negativo, como é o caso em alguns idiomas).
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste adicionais acima n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0