回 帖 发 新 帖 刷新版面

主题:[讨论]1到10的阶乘的两种算法为什么结果不一样?欢迎回帖。。


方法一:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer
        Dim s As Long
        Dim p As Long
        p = 1
        For i = 1 To 10
            p = p * i
            s = s + p
        Next
        TextBox1.Text = "1!+2!+...+10!=" & p.ToString

方法二:递归
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As     System.EventArgs) Handles Button1.Click
        Dim i As Integer
        Dim s As Long
        For i = 1 To 10
            s = s + fac(i)
        Next
        TextBox1.Text = "1!+2!+...+10!=" & s
    End Sub

    Private Function fac(ByVal i As Integer) As Long
        Dim s As Long
        If i > 1 Then
            s = i * fac(i - 1)
        Else
            s = 1
        End If
        fac = s
    End Function
End Class
    End Sub

回复列表 (共2个回复)

沙发

第二个s初始化为多少?有什么不同呀?

板凳

呵呵,我这个问题已经解决了的,谢谢回帖哦。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册