6

最初の 10 個のフィボナッチ数を表示する方法を教えてください。私のコードは次の結果を表示します: 1, 2, 3, 5, 8, 13, 21, 34, 55 そして、最初の 2 つのフィボナッチ数 (0 と 1) も表示する必要があります。どうすればいいですか?

Public Class Form1
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim a As Integer = 0
    Dim b As Integer = 1
    Dim fib As Integer = 0

    Do
      fib = a + b
      a = b
      b = fib
      Label1.Text = Label1.Text + fib.ToString & ControlChars.NewLine
    Loop While fib < 55
  End Sub
End Class

プロのプログラミングのどこでフィボナッチ数列を使用する必要がありますか?

4

9 に答える 9

3

追加するだけ

Label1.Text = Label1.Text + a.ToString & ControlChars.NewLine
Label1.Text = Label1.Text + b.ToString & ControlChars.NewLine

の前にDo ... while

フィボナッチ数にリンクされたアプリケーションについては、以下を参照してください:フィボナッチ: アプリケーション

于 2011-04-03T18:57:52.360 に答える
3

次のシーケンス番号を計算してから結果を出力に追加する代わりに、逆の順序で実行します。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim a As Integer = 0
    Dim b As Integer = 1
    Dim fib As Integer 

    Do
        Label1.Text += a.ToString & ControlChars.NewLine
        fib = a + b
        a = b
        b = fib
    Loop While a <= 55

End Sub
于 2011-04-03T19:01:04.357 に答える
1

コードで最初の 2 つのフィボナッチ数を 0 と 1 に定義したのと同じ方法で、それらを先頭のラベル文字列に入れる必要があります (つまり、ループではなく)。また、おそらく、10 番目の数を知ることに頼るのではなく、計算したフィボナッチ数の数に対してループ条件を使用する必要があります。

私は仕事でフィボナッチ数を使用したことはありませんが、単純な再帰的解法、ルックアップテーブルを使用するもの、黄金比、行列形式を使用した単純な反復解法 (あなたのようなもの) を使用した非常に良い学習演習です...

于 2011-04-03T19:27:33.927 に答える
0

非常にシンプルで、ボタンを使用するだけで、必要な数のシーケンスを生成できます。

Sub fibonacci()

mycount = Application.CountA(Range("A:A"))

e = mycount - 1
fib = 0
fib = Cells(e, 1).Value + Cells(e + 1, 1).Value
Cells(mycount + 1, 1).Value = fib
mycount = mycount + 1

End Sub
于 2014-07-01T16:48:46.497 に答える
0

このコードを試してください:

Dim arr As New ArrayList()
    Console.Write("The Fibonacci Series is : ")
    For i As Integer = 0 To 10
        If i = 0 Or i = 1 Then
            arr.Add(i)
            Console.Write(arr(i).ToString() + ", ")               
        Else
            arr.Add(arr(i - 2) + arr(i - 1))
            If i = 10 Then
                Console.Write(arr(i).ToString())
            Else
                Console.Write(arr(i).ToString() + ", ")
            End If
        End If
    Next
    Console.Read()
于 2013-10-18T11:30:09.557 に答える
-1
Dim a, b, c as integer

a=0

b=1

print a 

print b

while c<(n-c)

c=a+b

print c

a=b

b=c

wend

print "This is Fibonacci Series"

End Sub
于 2013-02-07T06:13:02.843 に答える