#python #iteration
#python #итерация
Вопрос:
У меня есть следующий код для вычисления GCD из двух чисел:
def gcd(m, n):
r = m % n
while r != 0:
m = n
n = r
r = m % n
return n
print ("n", "gcd (10, 35) = ", gcd(10, 35))
print ("n", "gcd (735, 175) = ", gcd(735, 175))
print ("n", "gcd (735, 350) = ", gcd(735, 350))
Я хотел бы подсчитать количество итераций, которые алгоритм должен пройти, прежде чем найти GCD. У меня возникли проблемы с созданием цикла for для определения количества итераций.
Комментарии:
1. просто добавьте счетчик и верните его с помощью n
2. «Я хотел бы посчитать количество итераций» — Так что, сделайте это?
3. установите
counter=0
вне определения и увеличивайте его каждый раз при выполнении кода вwhile
цикле4. Есть ли причина, по которой вы изобретаете
fractions.gcd
(или в современном Python, более быстрый встроенныйmath.gcd
)?5. … как, черт возьми, вы смогли написать эту функцию, но не выяснили, как подсчитывать итерации? … о, подождите, я знаю … убедитесь, что вы усердно учитесь… задания очень просты рядом с тестами (и вы не можете попросить SO выполнить ваши тесты за вас)
Ответ №1:
def gcd(m, n):
r = m % n
counter = 0
while r != 0:
m = n
n = r
r = m % n
counter = 1
return n, counter