• ベストアンサー
  • すぐに回答を!

excel vbaのプログラムが作成できません

  • 質問No.8865062
  • 閲覧数1161
  • ありがとう数16
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 0% (0/3)

プログラミングでexcel vbaを勉強しています。
excel vbaのプログラムでフィボナッチ数列のプログラムを作れという問題なんですけど、正直全くわかりません。誰かこのプログラミングを教えてください。お願いします。

フィボナッチ数列は次のように帰納的に定義される。
fib(1) = fib(2) = 1
fib(n) = fib(n - 1) + fib(n - 2) (ただしn >= 3)
この関数fib(n)を定義せよ。ただし引数nはInteger型、fib関数の返す値はLong型とする。

またfib関数を呼び出す適当なメインプロシージャを定義し、A1セルからA20セルまでに
fib数列の1~20番目の値を書き出すようにせよ。
という問題です。ほんとに困ってますお願いします

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 44% (1487/3332)

vbaの基礎はできているのですか。

要するにプログラムのメインの部分は

dim FIB(1000)

FIB(1)=1 : FIB(2)=1

for N=2 to 100 : FIB(N)=FIB(N-1)+FIB(N-2) : next N

あとは手続的な話だけでしょう。

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 48% (110/227)

No2投稿前に書き換えてミスしてました


Cells(i, 1).Value = CalFIB(i)

Cells(i, 1).Value = fib(i)
  • 回答No.2

ベストアンサー率 48% (110/227)

もし、問題文が質問内容の通りなら、「自分で考えて作りました!」とか言うと
ボロが必ず出る設問になっています。教えて貰った事を必ず申告しましょう


Sub fncFib()
 Dim i As Integer
 For i = 1 To 20
  Cells(i, 1).Value = CalFIB(i)
 Next i
End Sub


Function fib(n As Integer) As Long
 ' 戻り値
 fib = 0

 ' 計算結果を格納する配列arrayFibを宣言する
 ' ただし、47回目の帰納で計算結果がLong型の上限を超える為、配列数は46とする
 Dim arrayFib(46) As Long

 arrayFib(1) = 1
 arrayFib(2) = 1

 For i = 3 To n
arrayFib(i) = arrayFib(i - 1) + arrayFib(i - 2)
 Next i

 ' 戻り値を設定する
 fib = arrayFib(n)
End Function
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ