счетчик итераций для GCD

#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