
![[old] Saw the Stick](https://dk1vwk12q8pjl.cloudfront.net/media/logos/task/middle/disabled_stick.png)
[old] Saw the Stick

Ein ungeheuer großer junger Hund sah mit seinen hervorstehenden runden Augen auf sie herab und machte einen schwachen Versuch, eine Pfote auszustrecken und sie zu berühren. »Armes kleines Ding!« sagte Alice in liebkosendem Tone, und sie gab sich alle Mühe, ihm zu pfeifen; dabei hatte sie aber große Angst, ob er auch nicht hungrig wäre, denn dann würde er sie wahrscheinlich auffressen trotz allen Liebkosungen.
Ohne recht zu wissen was sie that, nahm sie ein Stäbchen auf und hielt es ihm hin; worauf das ungeschickte Thierchen mit allen vier Füßen zugleich in die Höhe sprang, vor Entzücken laut aufbellte, auf das Stäbchen losrannte und that, als wolle es es zerreißen;...
Mein Fund, ein Stock, er wog 2 Pfund:
Eines Tages, ich zersägte ihn
Acht Stück von gleich Gewicht!
Wieviel wiegte ein jedes noch?
(Jeder der sagt, "ein Viertelpfund", liegt falsch.)
"Alice im Wunderland der Rätsel ." Lewis Carroll
Freie Übersetzung
Die Roboter wollen den Stock in mehrere Stücke sägen. Die Länge des Stocks ist N Zoll. Wir sollten unseren Robotern dabei helfen. Jedes Stück muss eine ganzzahlige Länge aufweisen (1, 2, 3 .. Zoll, nicht 1.2). Wir lieben Zahlenreihen und speziell die (Dreieckszahlen), also sollst Du den Stock so zersägen, dass die resultierenden Längen eine fortlaufende Serie der Dreieckszahlen bilden. Wähle immer die maximale Größe (Länge der Reihe). Alle Teile müssen verschiedene Längen haben (keine Wiederholung). Zum Beispiel: 64 soll in 15, 21, 28 geteilt werden, da 28, 36 kürzer ist, und 1, 3, 15, 45 keine fortlaufende Reihe bildet.
Gegeben ist die Länge des Stocks (N). Deine Lösung soll eine Liste mit Längen der Teile in aufsteigender Folge zurückgeben. Wenn es nicht möglich ist, also das Problem keine Lösung hat, dann gib eine leere Liste zurück.
Eingabe: Die Länge des Stockes als Ganzzahl.
Ausgabe: Ein Ausschnitt der Dreieckszahlen als Liste von Ganzzahlen (aufsteigend sortiert) oder eine leere Liste.
Beispiel:
stick(64) == [15, 21, 28] stick(371) == [36, 45, 55, 66, 78, 91] stick(225) == [105, 120] stick(882) == []
Wozu das gut ist:
In dieser Aufgabe lernst Du etwas über Dreieckszahlen.
Die Anzahl der Steine, die man zum Legen eines gleichseitigen Dreiecks benötigt,
entspricht immer einer Dreieckszahl.
Das ist eine interessante Sequenz mit vielen Anwendungen.
Dazu ein Beispiel aus der realen Welt:
In kompetitiven Sportarten, die als Rundenturnier ausgetragen werden, ist
die Nummer der Begegnungen zwischen n Teams gleich der Dreieckszahl Tn−1.
Zum Beispiel benötigt ein Gruppenspiel mit 4 Teams 6, und eines mit 8 Teams 28 Spiele.
Bedingung: 0 < length < 1000