§Algorithm§


☆階乗計算☆


 階乗計算は、数学でよく用いられる計算です。5!といった形で「!」記号を 使い、5!=5*4*3*2*1 となります。ちょっと難しい式を用いて表現すると、
a!=a*(a-1)*(a-2)*・・・*1
と、表せます。このことを再帰を用いたプログラム的に表すと、次のようにできます。 (integer型なので、大きい値ではオーバーフローしてしまいます。)

'============================================================
'Kaijyo   再帰処理で、階乗計算をし、その答えを返す
'------引数--------------------------------------------------
'a     階乗する値(a>=1)
'============================================================
Public Function Kaijyo(a As Integer) As Integer
    If a = 1 Then Kaijyo = a: Exit Function
    Kaijyo = a * Kaijyo(a - 1)
End Function

 以下、ループ処理を使った方法です。

'============================================================
'Kaijyo2   ループ処理で、階乗計算をし、その答えを返す
'------引数--------------------------------------------------
'a      階乗する値(a>=1)
'============================================================
Public Function Kaijyo2(a As Integer) As Integer
    Dim r As Integer
    r = 1
    Do While a > 0
        r = r * a
        a = (a - 1)
    Loop
    Kaijyo2 = r
End Function


(サンプルプログラムの動作確認)

機種 PC-9821V13S
OS Windows95
開発ツール Visual Basic Ver.4.0
更新日 00/1/30

ダウンロード Recursion2.lzh(1.85KB)

Visual Basic Ver.5.0,Ver.6.0でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で起きた損害などに関して一切の責任を負うことはできません。

★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。


Algorithmインデックス トップ


Copyright(C)1999 Tomoya. All rights reserved.