Der unten angegebene Code funktioniert nur für einige der Eingänge wie gcdIter (2, 12) korrekt, was mir korrekte Ausgabe ie 2 gibt, aber wenn ich Eingabe als gcdIter (220,120) gibt es mir stattdessen 110 von 20. Ich brauche Hilfe mit der Logik.GCD ohne Verwendung der Rekursion
def gcdIter(a, b):
'''
a, b: positive integers
returns: a positive integer, the greatest common divisor of a & b.
'''
if a<b:
while a>0:
if b%a==0:
print('the gcd is : '+''+str(a))
break
else:
a -= 1
else:
while b>0:
if a%b==0:
print('the gcd is :'+''+str(b))
break
else:
b -= 1
Leider zu überprüfen, aber Ihr Code macht keinen Sinn für mich. Was ist der Sinn von "a - = 1"? –
Willkommen bei Stack Overflow! Es sieht so aus, als müssten Sie lernen, einen Debugger zu verwenden. Bitte helfen Sie sich selbst [https://ericlippert.com/2014/03/05/how-to-debug-small-programs/]. Wenn Sie danach noch Probleme haben, können Sie gerne weitere Einzelheiten erfahren. –
Ich dekrementiere nur den Wert von a und überprüfe es erneut, um die richtige Antwort zu erhalten. –