Grundlagen der Programmierung (Pseudocode nachverfolgen)
Das folgende Programm subtrahiert die beiden ganzen Zahlen a und b voneinander, bis sie gleich sind. Welchen Wert hat k nach der Ausführung?
integer: a ← 48, b ← 18, k ← 0
while (a ≠ b)
if (a > b)
a ← a − b
else
b ← b − a
endif
k ← k + 1
endwhile
- A3
- B4
- C6
Antwort und Erläuterung anzeigen
Antwort: B. 4
Das ist die Subtraktionsform des euklidischen Algorithmus: Der kleinere Wert wird so lange vom größeren abgezogen, bis beide gleich sind. (a, b) ändert sich als (48, 18) → (30, 18) → (12, 18) → (12, 6) → (6, 6), also vier Subtraktionen, daher ist k = 4. Das abschließende a = b = 6 ist der größte gemeinsame Teiler. Der euklidische Algorithmus mit dem Rest (mod) braucht nur drei Schritte: 48 mod 18 = 12, 18 mod 12 = 6, 12 mod 6 = 0.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)