Eingang:
Ganzzahl, n
die >=0
oder ist >=1
( f(0)
ist optional)
Ausgabe:
Die n
'te Nummer in der Folge unten ODER die Folge bis einschließlich der n
' ten Nummer.
Reihenfolge:
(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
Wie ist diese Sequenz aufgebaut?
f(n=0) = 0
(optional)
f(n=1) = f(0) + n
oder 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.
Oder in Pseudocode:
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
}
Wie Sie vielleicht bemerkt haben, enthält die Sequenz zwei Muster:
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
Alle anderen Ansätze, die zur gleichen Reihenfolge führen, sind natürlich auch völlig in Ordnung.
Herausforderungsregeln:
- 0-indizierte und 1-indizierte Eingaben führen zu demselben Ergebnis (daher
f(0)
ist das optional für 0-indizierte Eingaben, wenn Sie es einschließen möchten). - Sie dürfen die
n
'te Nummer dieser Sequenz ausgeben . Oder die gesamte Sequenz bis einschließlich dern
'ten Nummer. (f(5)
Kann also entweder zu5
oder führen0,1,-1,-3,0,5
.)- Wenn Sie die Sequenz bis einschließlich der
n
'ten Zahl ausgeben möchten, ist das Ausgabeformat flexibel. Kann eine durch eine Liste / ein Array, ein Komma / ein Leerzeichen / eine durch eine neue Zeile getrennte Zeichenfolge sein oder nach STDOUT usw. gedruckt werden.
- Wenn Sie die Sequenz bis einschließlich der
- Die Division (
/
) ist eine Ganzzahl- / Bodendivision, die gegen 0 rundet (nicht gegen negative Unendlichkeit, wie dies in einigen Sprachen der Fall ist).
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Zusätzliche Testfälle oben n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0