2011-04-03 15 views
6

Podría ayudarme mostrando los primeros 10 números de Fibonacci. Mi código muestra el siguiente resultado: 1, 2, 3, 5, 8, 13, 21, 34, 55 y también necesito que muestre los dos primeros números de Fibonacci (0 y 1). ¿Como podría hacerlo?Secuencia de Fibonacci en VB.net utilizando el bucle

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 

¿En qué parte de la programación profesional necesitarías usar secuencias de Fibonacci?

Respuesta

3

Sólo añadir

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

antes de la Do ... while.

Para aplicaciones vinculadas a los números de Fibonacci ver: Fibonacci: Applications

2

En lugar de calcular el siguiente en número de secuencia y después añadiendo los resultados a la salida, lo hacen en orden inverso:

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

De esta manera no imprime el primer valor (0) ni el último valor. – log0

+0

De hecho, gracias por señalarlo. Corregido – Anax

1

En la misma De manera que haya definido los primeros dos números de Fibonacci en su código para que sean 0 y 1, debe ponerlos en la cadena de etiquetas al principio (es decir, no en el ciclo). También debería usar una condición de bucle en la cantidad de números de Fibonacci que ha calculado en lugar de confiar en saber cuál es la décima.

Nunca he usado números de Fibonacci en el trabajo, pero son un buen ejercicio de aprendizaje con la ingenua solución recursiva, uno con una tabla de búsqueda, una solución iterativa simple (como la tuya), usando la proporción áurea, la matriz ...

-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

Prueba este código:

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, simplemente usando un botón, y puedes generar tantos números de la secuencia como quieras.

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 
Cuestiones relacionadas