"階乗"
"出力例"
階乗を計算するプログラムをつくれ
"サンプルマクロ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)で階乗を計算する。
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.作成した関数を呼び出して実行する。
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.作成した関数を呼び出して実行する。
2.作成した関数を呼び出して実行する。