用VB编一求阶乘的函数f(n),主调程序求组合数的程序,分别调用f(n),用来计算组合数的值

组合数公式:c=n!/(m!(n-m)!)。下面是我做的,不是出现确保不会除零就是出现确保您没有无限循环或无限递归:Functionc(ByValmAsLong)AsIn... 组合数公式:c=n!/(m!(n-m)!)。下面是我做的,不是出现确保不会除零就是出现确保您没有无限循环或无限递归:
Function c(ByVal m As Long) As Integer
Dim i As Long
c = 1
If m = 0 Then
Return 1
Else
Return m * c(m - 1)
End If
For i = 1 To m
c = c * i
Next
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim N, M, a, b As Integer
Dim x1, x2, x3 As Integer
N = TextBox1.Text
M = TextBox2.Text
If N > M Then
a = N - M
x1 = c(N)
x2 = c(M)
x3 = c(a)
b = x1 / (x2 * x3)
TextBox3.Text = b
End If
End Sub
展开
 我来答
lnzzxzy
2012-05-23 · TA获得超过8128个赞
知道小有建树答主
回答量:1316
采纳率:80%
帮助的人:780万
展开全部
Function c(ByVal m As Integer) As Long
If m = 0 Then
c = 1 ' Return 1 不是用这个返回, 直接赋值
Else
c = m * c(m - 1) 'Return m * c(m - 1) '同上
End If
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim N As Integer , M As Integer , a As Integer, b As Integer
Dim x1 as long , x2 as long , x3 as long
N =val (TextBox1.Text) 'N = TextBox1.Text
M = val(TextBox2.Text ) 'M = TextBox2.Text
If N > M Then
a = N - M
x1 = c(N)
x2 = c(M)
x3 = c(a)
b = x1 / (x2 * x3)
TextBox3.Text = b
End If
End Sub
追问
不行啊,还是会出现确保不会除零。我郁闷了~~~~~~~~~~~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式