?
Stiefel2000 schrieb:
Belli schrieb:
Stiefel2000 schrieb:
@ Belli: Das mit dem switch ist ganz gut - warum nimmst du anstatt der for-Schleife keine while-Schleife?
Ich dachte, wenn ich eine while - Schleife nehme, fragst Du mich, warum ich keine for-Schleife nehme.
:p
Ich habe nicht "while(1)", sondern die erste if-Abfrage des Anweisungsblocks als Abbruchbedingung genommen.
Das ist auch viel besser. Damit sparst Du das return in der Schleife. Ich wollte mit meinem Vorschlag so nah wie möglich bei Deinem Ansatz bleiben. Es gibt möglicherweise noch Wege, den switch einzusparen, wenn man Funktionszeiger einsetzt, aber das hängt auch ein bißchen von dem Rest ab.
Stiefel2000 schrieb:
Belli schrieb:
Nein, Du brauchst immer nur die bisher kürzeste gefundene. Also die zweite gefundene Lösung vergleichst Du auf Grund der Rekursionstiefe mit der ersten, und verwirfst die längere gleich.
Die nächste gefundene Lösung vergleichst Du mit der, die Du noch hast, und verwirfst wieder die längere, usw.
Ok, das hätte ich wahrscheinlich schnell gemerkt ;). Aber ich weiß eben noch nicht, wie ich das gut umsetze.
Wie gesagt, wenn Du einen Weg gefunden hast, mußt Du Dir den merken, bevor der Rückweg durch die Rekursion angetreten wird, denn dann sind die Ergebnisse ja weg. Und diesen gemerkten Weg ersetzt Du dann, wenn Du einen kürzeren findest. Am Ende, wenn alle Möglichkeiten durch sind, führst Du dann den gemerkten Weg aus.