Реализации алгоритмов/Алгоритм Евклида: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 12:
Функция в [[рекурсия|рекурсивном]] виде:
 
<source lang="ruby">
'''def''' gcd(a, b)
'''return''' a '''if''' b.eql? 0
gcd(b,return a %if b).zero?
gcd(b, a % b)
end
</source>
 
Функция в нерекурсивном виде:
 
<source lang="ruby">
'''def''' gcd(a, b)
'''while''' !b.eql? 0
a, b = b, a % b until b.zero?
a
'''end'''
end
return a
</source>
end
 
Алгоритм вычитанием:
 
<source lang="ruby">
'''def''' gcd(a, b)
'''while''' !a.eql? b
'''if''' a > b
a -= b
'''else'''
b -= a
end while a != '''end'''b
a
'''end'''
end
'''return''' a
</source>
end
 
== [[PHP]] ==