vba seminar banner 
    Home   >>   Quiz   >>   Factorial
 "階乗"
"出力例"
階乗を計算するプログラムをつくれ
factorial01
"サンプルマクロ01"
"ヒント・解説01"
Public Sub factorial01()

Const n As Byte = 30
Dim x0 As Variant, i As Integer

x0 = 1

For i = 1 To n
    
    x0 = i * x0
    Cells(i, 3).Value = x0
    
Next i

End Sub
	
  1. F(n)=0のときx=1とする。

  2. n-1の値を保持しておきn*(n-1)で階乗を計算する。
"サンプルマクロ02"
"ヒント・解説02"
Private Function CFact(n As Byte) As Variant

Dim x As Variant, i As Integer

x = 1

For i = n To 1 Step -1

    x = x * i

Next i

CFact = x

End Function


Public Sub factorial02()

Dim i As Byte

For i = 1 To 30

Range("D" & i).Value = CFact(i)

Next i

End Sub
	
  1.階乗を計算する関数をつくる。

  2.作成した関数を呼び出して実行する。
"サンプルマクロ03"
"ヒント・解説03"
Private Function RFact(n As Byte) As Variant

If n = 0 Then
    RFact = 1
Else
    RFact = n * RFact(n - 1)
End If

End Function


Public Sub factorial03()

Dim i As Byte

For i = 1 To 30

Range("E" & i).Value = RFact(i)

Next i

End Sub
	
  1.再帰関数をつくる。

  2.作成した関数を呼び出して実行する。