Manchmal, wenn mir wirklich langweilig ist, nehme ich gerne die Summe einer Reihe von nicht negativen ganzen Zahlen. Ich nehme nur die Summe der Längenfelder, die Zweierpotenzen sind. Leider mache ich oft Fehler. Glücklicherweise verfolge ich meine Arbeit auf folgende Weise:
Ich füge Paare benachbarter Zahlen hinzu, bis nur noch eine übrig ist. Beispielsweise:
6 + 18 + 9 + 6 + 6 + 3 + 8 + 10
= 24 + 15 + 9 + 18
= 39 + 27
= 66
Sie müssen feststellen, ob ich irgendwo einen Fehler gemacht habe. Sie können entweder Eingaben an Ihre Funktion übergeben oder Standardeingaben einlesen. Die Ausgabe kann gedruckt oder zurückgegeben werden.
Eingabe: Ein Array / Liste / etc. von nicht-negativen ganzen Zahlen, und möglicherweise auch die Länge dieses Arrays, wenn Ihre Sprache es erfordert. In diesem Array werden alle Zahlen von links nach rechts und dann von oben nach unten gelesen. Zum Beispiel würde das Array oben lauten:
[[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]]
oder
[6, 18, 9, 6, 6, 3, 8, 10, 24, 15, 9, 18, 39, 27, 66]
wenn Sie es vorziehen.
Ausgabe: Ein einzelner Boolescher Wert, der angibt, ob ein Fehler gemacht wurde oder nicht. Der Boolesche Wert kann unter Verwendung einer beliebigen Zuordnung dargestellt werden, vorausgesetzt, dass alle Eingaben, bei denen ein Fehler gemacht wurde, ein identisches Ergebnis zurückgeben / ausgeben und alle Eingaben, die keine Fehler enthalten, ein identisches Ergebnis zurückgeben / ausgeben. Dies sollte selbstverständlich sein, aber diese beiden Ausgänge können nicht gleich sein.
Einige Beispiele für korrekte Summierungen:
6
5+6
=11
3 + 2 + 4 + 5
= 5 + 9
= 14
[0, 1, 2, 3, 1, 5, 6]
[[1, 2, 4, 8], [3, 12], [15]]
Einige Beispiele für eine falsche Summierung:
5+4
=8
4 + 4 + 4 + 4
= 9 + 7
= 16
[[1, 2, 3, 4], [7, 3], [10]]
[3, 4, 5, 6, 7, 8, 9]
Denken Sie daran, dass ich Fehler machen und trotzdem die richtige Antwort bekommen kann. Wenn ich einen Fehler mache, führt dies nie zu einer zusätzlichen Nummer oder einer fehlenden Nummer im endgültigen Array, sondern nur zu einer falschen Nummer.
Standardlücken sind verboten. Die kürzeste Antwort in jeder Sprache ist ein Gewinner. Die ältere Antwort gewinnt im Falle eines Gleichstands. Ich behalte mir das Recht zu entscheiden, was die "gleiche Sprache" ist, aber ich sage im Voraus, dass ein Punkt in Python 2 und Python 3 nicht verdient werden kann.
[0,1,2,3,1,5,6]
ist ungültig, weil "Eingabe: Ein Array / eine Liste / usw. Positiver Ganzzahlen".