A versão não-recursiva está abaixo:
def mdc(a,b):
while b !=0:
resto = a % b
a = b
b = resto
return a
print(mdc(50,2))
A versão não-recursiva está abaixo:
def mdc(a,b):
while b !=0:
resto = a % b
a = b
b = resto
return a
print(mdc(50,2))
Oi, Edson! Esses algoritmos são bem legais ;-). A ideia da recursividade é que uma função chame ela mesma. Se tirarmos o loop while
, podemos fazer isso facilmente, olha:
def mdc(a, b):
if b == 0:
return a
resto = a % b
a = b
b = resto
return mdc(a, b)
Deixei com os passos parecidos com o seu pra ficar mais fácil de entender. Se quiser, dá pra simplificar até esse ponto:
def mdc(a, b):
if b == 0:
return a
return mdc(b, a%b)
Se ficou alguma dúvida, pode falar, Edson! Abraços!
@Yan Orestes: Obrigado! A ideia é trazer para cá problemas interessantes que eu estou tentando resolver de forma a enriquecer o fórum! Muito obrigado por sua colaboração. Suas respostas são excelentes!