Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VB.NET2008中使用文本框、按钮等构建递归程序_Vb.net - Fatal编程技术网

如何在VB.NET2008中使用文本框、按钮等构建递归程序

如何在VB.NET2008中使用文本框、按钮等构建递归程序,vb.net,Vb.net,我正在学习VB.NET2008。我遇到了一种情况 我想使用VB.NET2008中的Windows工具,为前50项构建一个递归程序,如数字的阶乘或斐波那契级数。例如,在文本框中键入一个数字,单击按钮,数字的阶乘输出将显示在标签上。内部代码应该以递归的方式实现,而不仅仅是使用简单的循环 我没有找到一个合适的方法来解决这个问题 请帮帮我 非常感谢。你那样试过吗 Public Class Form1 Private Sub Button1_Click(ByVal sender As Sy

我正在学习VB.NET2008。我遇到了一种情况

我想使用VB.NET2008中的Windows工具,为前50项构建一个递归程序,如数字的阶乘或斐波那契级数。例如,在文本框中键入一个数字,单击按钮,数字的阶乘输出将显示在标签上。内部代码应该以递归的方式实现,而不仅仅是使用简单的循环

我没有找到一个合适的方法来解决这个问题

请帮帮我


非常感谢。

你那样试过吗

    Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim x As Integer
        Dim Fac As Integer
        x = TextBox1.Text
        Fac = 1
        For i = x To 1 Step -1
            Fac = Fac * i
        Next i
        Label1.Text = Fac
    End Sub
End Class
希望有帮助

重新编辑以获得更好的性能:

私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击

Try
    Dim x As Long = (CLng(TextBox1.Text)))
    Dim Fac As Long
    Fac = 1

    For i = x To 1 Step -1
        Fac = Fac * i
    Next i

    Label1.Text = "Factorial Number:  " & Fac
Catch ex As Exception
    MsgBox(ex.Message.ToString)
End Try
端接头


sry我没看到你现在可以用了。。。我对它进行了测试,最大值是20:)

您可以使用一个调用自身的递归函数

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Label1.Text = Factorial(CLng(TextBox1.Text))
End Sub
Function Factorial(ByVal number As Long) As Long
    If number <= 1 Then
        Return (1)
    Else
        Return number * Factorial(number - 1)
    End If
End Function
Private子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
Label1.Text=Factorial(CLng(TextBox1.Text))
端接头
函数阶乘(ByVal数等于Long)等于Long

到目前为止你试过什么?你试过什么了吗?关于计算斐波那契级数,你的搜索结果是什么?选择正确的控件总是很重要的。访问TreeView的节点最好使用递归方法。请(如其他人所述)展示您迄今为止所做的尝试。我们不会为您编写代码。我们帮助找出什么是错误的嗯…
CLng(CLng(CLng(TextBox1.Text))
?是否确实要将
TextBox1.Text
中的字符串转换为长字符串,然后再将该长字符串转换为长字符串,然后将(第二个)长字符串转换为长字符串?:)