2011-04-03 24 views
6

Proszę, pomóż mi z wyświetlaniem pierwszych 10 liczb Fibonacciego. Mój kod wyświetla następujący wynik: 1, 2, 3, 5, 8, 13, 21, 34, 55 i potrzebuję go również do wyświetlania pierwszych dwóch liczb Fibonacciego (0 i 1). Jak to zrobić?Sekwencja Fibonacciego w VB.net przy użyciu pętli

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 

Gdzie w profesjonalnym programowaniu potrzebne byłyby sekwencje Fibonacciego?

Odpowiedz

3

Wystarczy dodać

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

przed Do ... while.

Do zastosowań związanych z liczb Fibonacciego patrz: Fibonacci: Applications

2

Zamiast obliczania następny numer sekwencji, a następnie dodawanie wyniki do wyjścia, zrób to w odwrotnej kolejności:

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

W ten sposób nie drukuje się pierwszej wartości (0) ani ostatniej wartości. – log0

+0

Rzeczywiście, dziękuję za wskazanie. Poprawione. – Anax

1

W taki sam sposób, w jaki zdefiniowałeś pierwsze dwie liczby fibonaccich w twoim kodzie, aby były 0 i 1, powinieneś umieścić je w łańcuchu etykiet na początku (tj. nie w pętli). Powinieneś też prawdopodobnie użyć warunku pętli na podstawie liczby obliczonych liczb fibonacci zamiast polegać na tym, że wiesz, co to jest dziesiąta.

Nigdy nie używałam numerów Fibonacciego w pracy, ale są to całkiem dobre ćwiczenia edukacyjne z naiwnym rekurencyjnym soleczeniem, jednym z tabelą odnośników, prostym iteracyjnym soloutionem (jak twoje), używając złotego współczynnika, macierzowej postaci ...

-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 

End Class

0

Spróbuj kod:

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, za pomocą przycisku, i można wygenerować tyle numerów sekwencji, jak chcesz.

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 
Powiązane problemy