Excel VBAを使った簡単な数学プログラミングの続きです。
今回はEuclidの互除法です。
アルゴリズムの基本という感じがします。実は、次回への布石です。
ソースコードは、ご自由にご利用ください。ただし、趣味のプログラムなので、保証はありません。
Option Explicit
'Euclidの互除法
Public Sub Macro()
Dim x As Long
Dim y As Long
x = 123
y = 333
Sheet1.Cells(1, 1) = x
Sheet1.Cells(1, 2) = y
Sheet1.Cells(1, 3) = Euclidean(x, y)
End Sub
Public Function Euclidean(x As Long, y As Long) As Long
Dim a As Long
Dim b As Long
Dim r As Long
If x < y Then
a = y
b = x
Else
a = x
b = y
End If
r = a Mod b
Do While 0 < r
a = b
b = r
r = a Mod b
Loop
Euclidean = b
End Function
0 件のコメント:
コメントを投稿