Esta serie de números se obtiene a partir de dos, el cero y el uno. Cada nuevo valor es la suma de los dos anteriores. Casi siempre se plantea el crear un array o vector fila que contenga todos los N primeros valores de la serie de Fibonacci y mostrarlos por pantalla.
¿Cómo tengo que pensar?
Lo que me dicen es que los dos primeros valores de la serie siempre son el cero y el uno, independientemente de cuantos valores elija esos valores serán "la base". Entonces lo que necesito es un bucle "for" que vaya desde la posición 2 del array hasta la posición N haciendo la suma de los dos valores anteriores.
F(i) = F(i-1) + F(i-2)
Y con esto podemos contruir nuestra aplicación de consola y escribir lo siguiente:
Module Module1
Sub Main()
Fibonacci()
End Sub
Sub Fibonacci()
Dim n As Integer
Dim i As Integer
Dim c As String = ""
Dim F() As Integer
Console.WriteLine("Indica el número de filas N")
n = Console.ReadLine
If n > 2 Then
ReDim F(n - 1)
F(0) = 0
F(1) = 1
For i = 2 To n - 1
F(i) = F(i - 1) + F(i - 2)
Next i
For i = 0 To n - 1
c = c & CStr(F(i)) & " "
Next
Console.WriteLine(c)
Console.ReadLine()
End If
End Sub
End Module
Una vez que preguntamos (N) comprobamos que sea mayor que 2 con un if (ya sabemos cuales son los dos primeros elementos de la serie y no tendría mucho sentido hacer un programa que calculase 2 valores de una serie que son los valores por defecto....)
Redimensionamos el array F para N-1 valores con redim y seguido a esto podemos indicar que los valores de F que ocupan las dos primeras posiciones son el cero y el uno - F(0) = 0 // F(1) = 1 -
Con el primer bucle for vamos recorriendo todas las posiciones del array desde el 2 hasta N-1 calculando la suma de los dos elementos que la preceden.
Finalmente con otro for ponemos todos los valores en un String y lo mostramos por pantalla.
¿Fácil eh?
No hay comentarios:
Publicar un comentario