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

Нет описания правки
Dim d As Integer
Do While a <> 0 and b <> 0
If a >= b Then
a = a mod b
Else
Деление с остатком, без рекурсии:
<source lang="csharp">
static int GCD (int a, int b)
{
while (b != 0)
begin
if b = 0 then
gcdGCD := a
else
GCD := GCD(b, a mod b)
Деление с остатком, рекурсия:
<source lang="prolog">
?GCD(a, b, x)
 
GCD(0, b, b) <-
<source lang="bash">
gcd () {
n = 1 a = $1 b = $2
if [[ $a -ne 0 ]]
then
SUBGT Ri, Ri, Rj ; если GT, выполняется i = i-j;
SUBLT Rj, Rj, Ri ; если LT, выполняется j = j-i;
BNE loop ; если NE - переход на метку loop.
</source>
 
Анонимный участник