Ingresso:
Numero intero n
che è >=0
o >=1
( f(0)
è facoltativo)
Produzione:
Il n
'numero nella sequenza seguente, O la sequenza fino al n
numero compreso.
Sequenza:
(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
Come viene costruita questa sequenza?
f(n=0) = 0
(facoltativo)
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
ecc.
O in pseudo-codice:
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
}
Ma come avrai notato, ci sono due schemi nella sequenza:
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
quindi qualsiasi altro approccio che porti alla stessa sequenza è ovviamente del tutto soddisfacente.
Regole della sfida:
- Gli input indicizzati 0 e indicizzati 1 daranno lo stesso risultato (motivo per cui
f(0)
è facoltativo per gli input indicizzati 0 se si desidera includerlo). - È consentito emettere il
n
'numero numero di questa sequenza. O l'intera sequenza verso l'alto e includendo iln
'th numero. (Quindif(5)
può risultare in uno5
o0,1,-1,-3,0,5
.)- Se si sceglie di generare la sequenza fino al
n
numero compreso, il formato di output è flessibile. Può essere un elenco / matrice, virgola / spazio / stringa delimitata da nuova riga o stampata su STDOUT, ecc.
- Se si sceglie di generare la sequenza fino al
- Il divide (
/
) è la divisione intero / piano, che viene arrotondata verso 0 (non verso l'infinito negativo come in alcune lingue).
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Si applicano le regole standardPer la tua risposta , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Scappatoie predefinite sono vietate.
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
Casi di prova aggiuntivi sopra n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0