Реализации алгоритмов/Алгоритм Евклида: различия между версиями
Содержимое удалено Содержимое добавлено
→BASIC: Оптимизации |
|||
Строка 36:
50 IF A >= B THEN LET A = A - B: GOTO 50
60 IF A = 0 THEN LET A = B: GOTO 90
70
80 IF B <> 0 THEN GOTO
90 PRINT A
100 END
Строка 65:
A% = A% MOD B%
'Для вычитания убрать предыдущую строку и раскомментировать следующие:
'DO
' A% = A% - B%
'LOOP
Строка 74:
B% = B% MOD A%
'Для вычитания убрать предыдущую строку и раскомментировать следующие:
'DO 'Перед входом в этот цикл 0 < A% < B%, поэтому проверка B% < A% вынесена в постусловие
' B% = B% - A%
'LOOP UNTIL B% < A%
LOOP
FNGCD% = A%
Строка 83:
===[[w:PowerBASIC|PowerBASIC]], [[w:QBASIC|QBASIC]], [[w:QuickBasic|QuickBasic]] версий ≥ 4.0, [[w:Visual Basic|Visual Basic]]===
В следующих примерах используется тип <code>
Цикл, деление с остатком либо вычитание (при указанных заменах в коде):
<source lang="vb">
Function GCD(a As
a = Abs(a)
b = Abs(b)
Строка 93:
a = a Mod b
'Для вычитания убрать предыдущую строку и раскомментировать следующие:
'Do
' a = a - b
'Loop
Строка 102:
b = b Mod a
'Для вычитания убрать предыдущую строку и раскомментировать следующие:
'Do 'Перед входом в этот цикл 0 < a < b, поэтому проверка b < a вынесена в постусловие
' b = b - a
'Loop Until b < a
Loop
GCD = a
Строка 112:
Рекурсия, деление с остатком:
<source lang="vb">
Function GCD(a As
If b = 0 Then
GCD = Abs(a)
Строка 122:
===[[w:VB.NET|VB.NET]]===
В следующих примерах используется тип <code>
Цикл, деление с остатком либо вычитание (при указанных заменах в коде):
<source lang="vb">
Shared Function GCD(ByVal a As
a = Math.Abs(a)
b = Math.Abs(b)
Строка 132:
a = a Mod b
'Для вычитания убрать предыдущую строку и раскомментировать следующие:
'Do
' a -= b
'Loop
Строка 138:
b = b Mod a
'Для вычитания убрать предыдущую строку и раскомментировать следующие:
'Do 'Перед входом в этот цикл 0 < a < b, поэтому проверка b < a вынесена в постусловие
' b -= a
'Loop Until b < a
Loop
Return a
Строка 148:
Рекурсия, деление с остатком либо вычитание (при указанных заменах в коде):
<source lang="vb">
Shared Function GCD (ByVal a As
If b = 0 Then Return Math.Abs(a)
Return GCD(b, a Mod b)
|