2011-04-03 5 views
6

フィボナッチ数の最初の10個を表示するのに手伝ってください。私のコードは、1、2、3、5、8、13、21、34、55という結果を表示し、最初の2つのフィボナッチ数(0と1)も表示する必要があります。どうすればいい?VB.NETでのフィボナッチシーケンス

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 

フィボナッチシーケンスをプロフェッショナルプログラミングで使用する必要があるのはどこですか?

答えて

3

だけDo ... while

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

を追加します。フィボナッチ数にリンクされたアプリケーションについて

は参照:Fibonacci: Applications

2

代わりのシーケンス番号で次を計算して出力する結果を加算し、逆の順序でそれを行う。同じで

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 
+0

この方法では、最初の値(0)も最後の値も印刷しません。 – log0

+0

本当に、それを指摘してくれてありがとう。修正されました。 – Anax

1

あなたのコードの最初の2つのフィボナッチ数を0と1に定義しておけば、それらを最初のラベル文字列に入れるべきです(ループ内ではない)。おそらく、10番目のものが何であるかに頼るのではなく、計算したフィボナッチ数の数にループ条件を使用するべきです。

フィボナッチ数は一度も使われていませんが、ルックアップテーブル、単純な反復ソルト(あなたのようなもの)、黄金比、行列形式...

-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 
0
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 
    Dim a As Integer = 0 
    Dim b As Integer = 1 
    Dim fib As Integer 
    Dim userinput, i As Integer 
    userinput = InputBox("how many") 
    i = userinput 
    ListView3.Items.Add(1) 
    Do 
     fib = a + b 
     a = b 
     b = fib 
     ListView3.Items.Add(fib) 
     i = i + 1 
    Loop While fib < i 
End Sub 

エンドクラス

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() 
0

Pretty Sympleは、ボタンを使用するだけで、必要な数のシーケンスを生成することができます。

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 
関連する問題