Grundlagen der Programmierung (Pseudocode nachverfolgen)
Welche Folge von Werten wird ausgegeben, wenn die folgende Prozedur p als p(3) aufgerufen wird?
○p(integer: n)
if (n > 0)
p(n − 1)
output n
p(n − 1)
endif
- A1, 1, 2, 1, 1, 2, 3
- B3, 2, 1, 1, 2, 1, 1
- C1, 2, 1, 3, 1, 2, 1
Antwort und Erläuterung anzeigen
Antwort: C. 1, 2, 1, 3, 1, 2, 1
p(1) führt p(0) aus, gibt 1 aus und führt p(0) aus; es gibt also nur „1“ aus. p(2) führt p(1) aus, gibt 2 aus und führt p(1) aus, was „1, 2, 1“ ergibt. p(3) liefert „1, 2, 1“ aus p(2), dann 3 und dann noch einmal „1, 2, 1“ aus p(2): 1, 2, 1, 3, 1, 2, 1. Es gibt 2³ − 1 = 7 Ausgaben, in derselben Reihenfolge wie die Nummern der bewegten Scheiben beim Turm von Hanoi mit drei Scheiben.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)