0 Daumen
896 Aufrufe

ich habe noch folgendes Problem:

Ich soll einen Algorithmus für den größten gemeinsamen Teiler (ggT) von zwei natürlichen Zahlen a und b erstellen. Dieser soll rekursiv sein und darf nicht den Modulo Operator verwenden. Vom Prinzip her ist mir klar wie er funktioniert:

Ich habe die Zahlen a und b und subtrahiere sie von einander:

a-b

den Rest subtrahiere ich wieder von b

b-(a-b)

(a-b)-(b-(a-b)

usw. bis ich 0 erhalte

Das müsste ja auch funktionieren, da sich der ggT nicht ändert, wenn ich die kleinere von der größeren Zahl subtrahiere. Mein Problem ist jetzt aber, wie schreibe ich das ganze rekursiv auf?

Avatar von

1 Antwort

0 Daumen

Durch Fallunterscheidung:

ggT( a,b )  =      a   falls   a=b  

                 =    ggT( b,a) falls   a < b    

                 =    ggT( b , b-a)  


Avatar von 288 k 🚀

Und vorher muss nicht irgendwie definiert werden was ggt(a,b) eigentlich macht?

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community