Последовательность Фибоначчи в VB.net с использованием цикла - PullRequest
6 голосов
/ 03 апреля 2011

Пожалуйста, не могли бы вы помочь мне с отображением первых 10 чисел Фибоначчи.Мой код отображает следующий результат: 1, 2, 3, 5, 8, 13, 21, 34, 55, и мне нужно, чтобы он также отображал первые два числа Фибоначчи (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

Где в профессиональном программировании вам нужно использовать последовательности Фибоначчи?

Ответы [ 7 ]

3 голосов
/ 03 апреля 2011

Просто добавьте

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

до Do ... while.

Для приложений, связанных с числами Фибоначчи, см .: Фибоначчи: Приложения

2 голосов
/ 03 апреля 2011

Вместо того, чтобы вычислять следующий по порядковому номеру и затем добавлять результаты к выводу, делайте это в обратном порядке:

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
1 голос
/ 07 октября 2013
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

Конечный класс

1 голос
/ 03 апреля 2011

Точно так же, как вы определили первые два числа Фибоначчи в вашем коде как 0 и 1, вы должны поместить их в строку метки в начале (т.е. не в цикле).Вам также, вероятно, следует использовать условие цикла для числа чисел Фибоначчи, которое вы вычислили, вместо того, чтобы полагаться на знание, что такое 10-е число.

Я никогда не использовал числа Фибоначчи на работе, однако они довольно хорошиеучебное упражнение с наивным рекурсивным решением, одно с таблицей поиска, простым итерационным решением (как у вас) с использованием золотого сечения, матричной формы ...

0 голосов
/ 01 июля 2014

Довольно 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
0 голосов
/ 18 октября 2013

Попробуйте этот код:

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 голосов
/ 07 февраля 2013
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
...