Eine ähnliche Frage wurde vor ein paar Jahren gestellt , aber diese ist noch kniffliger.
Die Herausforderung ist einfach. Schreiben Sie ein Programm (in der Sprache Ihrer Wahl) , die wiederholt Code ausführt , ohne Wiederholung Strukturen unter Verwendung von wie while
, for
, do while
, foreach
oder goto
( also für alle Sie Nitpicker, man kann nicht eine Schleife verwenden ). Eine Rekursion ist jedoch in der Funktion, die sich selbst aufruft , nicht zulässig (siehe Definition unten) . Das würde diese Herausforderung viel zu einfach machen.
Es gibt keine Einschränkung, was in der Schleife ausgeführt werden muss, aber geben Sie eine Erklärung mit Ihrer Antwort an, damit andere genau verstehen, was implementiert wird.
Für diejenigen, die an Definitionen aufgehängt werden können, lautet die Definition einer Schleife für diese Frage:
A programming language statement which allows code to be repeatedly executed.
Und die Definition der Rekursion für diese Frage ist Ihre Standarddefinition für rekursive Funktionen:
A function that calls itself.
Gewinner ist die Antwort, die am 16. Juli um 10.00 Uhr Ortszeit die meisten positiven Stimmen hat. Viel Glück!
AKTUALISIEREN:
Zur Beruhigung der noch bestehenden Verwirrung kann Folgendes hilfreich sein:
Regeln wie oben angegeben:
- Benutze keine Schleifen oder gehe zu
- Funktionen können sich nicht selbst aufrufen
- Mach was du willst in der Schleife
Wenn Sie etwas implementieren möchten und die Regeln es nicht explizit verbieten, gehen Sie vor und tun Sie es. Viele Antworten haben die Regeln bereits verbogen.
rep(f){f();f();}
- Dies ist eine Anweisung (eine Funktionsdeklaration ist eine Anweisung in einigen Sprachen), mit der Code wiederholt ausgeführt werden kann. Ist es nicht erlaubt? Sie fragen nach Code, um eine Schleife zu implementieren. Wenn dieser Code syntaktisch eine Anweisung ist, haben Sie ihn gerade nicht zugelassen. Ein weiteres Beispiel: f(b) { b(); g(b); }; g(b) { f(b); }
. Ich würde sagen, es f
ist eine rekursive Funktion (indem man sich gegenseitig rekursiv behandelt g
). Ist es nicht erlaubt?
function A
rufen Sie auffunction B
undfunction B
rufen Sie auf,function A
während eine der Funktionen etwas ausführt. Da sich die Funktion nicht selbst nennt, sollte sie nach den Kriterien ^. ^ Gültig sein