Последовательность Фибоначчи в VB.net использование цикла
пожалуйста, не могли бы вы помочь мне с показа первых 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 ответов
просто добавить
Label1.Text = Label1.Text + a.ToString & ControlChars.NewLine
Label1.Text = Label1.Text + b.ToString & ControlChars.NewLine
до Do ... while
.
для приложений, связанных с числами Фибоначчи см.:Фибоначчи: Приложения
вместо того, чтобы вычислять следующий порядковый номер, а затем добавлять результаты к выходу, сделайте это в обратном порядке:
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 и 1, Вы должны поместить их в строку метки в начале (т. е. не в цикле). Вы также должны, вероятно, использовать условие цикла для количества чисел Фибоначчи, которые вы рассчитали, вместо того, чтобы полагаться на знание того, что 10th.
Я никогда не использовал числа Фибоначчи на работе, однако они довольно хорошее учебное упражнение с наивным рекурсивным решением, одно с таблица поиска, простое итеративное решение (как у вас), используя золотое сечение, матричную форму ...
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
Класс
попробуйте этот код:
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()
довольно 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
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