Ihre Aufgabe ist es, die Eingabe zu analysieren und die Formel für den n-ten Term auszugeben, wenn es sich um eine arithmetische Folge handelt, andernfalls sollte "NAAP" gedruckt werden.
Eingang
Die Eingabe (von STDIN) besteht aus wenigen Zahlen zwischen 4 und 10 Zahlen, wobei jede Zahl im Bereich zwischen -1000 und einschließlich 1000 liegt und durch ein Trennzeichen (ein Leerzeichen oder ein Komma oder ein Semikolon) getrennt ist deine Vorliebe]). Hier sind einige Beispieleingaben.
12,14,16,18 //valid
-3 4 5 1 -2 -4 //valid
45;35;-35 //invalid (only three numbers are present instead of the minimum of 4 numbers)
2,32;21,321 //invalid (it uses two different delimiters: `,` and `;`)
Ausgabe
Das Programm sollte zuerst prüfen, ob die Eingabe eine arithmetische Folge ist oder nicht.
Arithmetische Progressionen (AP) auf den Punkt gebracht: Jeder AP hat einen gemeinsamen Unterschied. Dies ist der Unterschied zwischen den Termen $ n $ und $ {n-1} $ (im Grunde $ a (n + 1) - a (n) $, wobei a
die Funktion für die Sequenz ist). Dieser Unterschied bleibt für jeden Wert von $ n $ in einem AP gleich. Wenn es keinen gemeinsamen Unterschied gibt, handelt es sich nicht um eine arithmetische Folge. Um den Wert des n-ten Terms zu berechnen, verwenden Sie diese Formel $ a (n) = a (1) + (n-1) d $, wobei $ a (1) $ der erste Term und $ d $ der gemeinsame ist Unterschied.
Wenn es sich nicht um eine arithmetische Folge handelt, sollte das Programm die Fehlermeldung "NAAP" (kurz für "Not An Arithmetic Progression") ausgeben.
Wenn es sich um eine arithmetische Folge handelt, sollte das Programm den vereinfachten n-ten Term der Sequenz in STDOUT drucken.
Beispiel:
> 1,3,5,7,9
2n-1
Erläuterung: Dies ist ein AP, da es einen gemeinsamen Unterschied gibt ($ 3 - 1 = 2 $). Dann verwenden Sie die Formel $ a (n) = a (1) + (n-1) d $
Daher ist die Ausgabe 2n-1
(beachten Sie das Fehlen von Leerzeichen)
Standardlücken sind standardmäßig nicht zulässig.
Sie können eine Funktion erstellen, wenn Sie möchten (mit dem Zahlenarray als Parameter). Wenn nicht, müssen Sie ein vollständiges Programm erstellen , das Eingaben als Zeichenfolge oder Array verwendet und entsprechend ausgibt.
Testfälle:
1.
1,3,5,7,9
2n-1
2.
1 3 12312 7 9
NAAP
3.
-6;8;22;36;50
14n-20
4.
5,1,-3,-7,-11,-15
-4n+9
5.
-5,-7,-9,-11,-13,-15
-2n-3
6.
3,3,3,3,3,3,3,3,3
0n+3
7.
-4,-5,-6,-7
-1n-3
Dies ist Code-Golf, also gewinnt der kürzeste Code in Bytes! (Entschuldigung für den schlechten Mathe-Jax)
Anregungen sind willkommen!
0,0,0,0
und 3,1,-1,-3,-5
arithmetische Progressionen? Wenn ja, denke ich, wären sie gute Testfälle, da sie eine Methode gebrochen haben, die ich versucht habe.