Option Explicit
Private Sub Command1_Click()
Dim s As Double
Dim j As Long
Dim i As Integer
'采用过程
s = 0
For i = 1 To 10
Call Myj1(i, j)
s = s + j
Next i
Print s
'采用函数
s = 0
For i = 1 To 10
s = s + Myj2(i)
Next i
Print s
End Sub
'自定义过程
Private Sub Myj1(ByVal n As Integer, ByRef j As Long)
Dim i As Integer
Dim jj As Long
jj = 1
For i = 1 To n
jj = jj i
Next i
j = jj
End Sub
'自定义函数
Private Function Myj2(ByVal n As Integer) As Long
Dim i As Integer
Dim jj As Long
jj = 1
For i = 1 To n
jj = jj i
Next i
Myj2 = jj
End Function
'首先编写个计算阶乘的函数 jiecheng()
private function jiecheng(x as intger) as long
if (x=0 or x=1) then '0和1的阶乘都为1
jiecheng=1
exit function
esleif
jiecheng=xjiecheng(x-1)
end function
'然后在窗口上添加一个command按钮和一个text文本框,用于显示结果
private sub command1_click()
text1text=jiecheng(3)+jiecheng(5)+jiecheng(7) '调用函数计算3,5,7的阶乘 ,显示结果
end sub
'先写一个求阶乘的函数
Private Function factorial(ByVal n As Integer) As Long
Dim i As Integer, l As Long
l = 1
For i = 1 To n
l = l i
Next
factorial = l
End Function
'添加一个按钮控件
Private Sub Command1_Click()
Dim result As Long, i As Integer
result = 0
For i = 1 To 10
result = result + factorial(i)
Next
Form1Print result
End Sub
'结果为4037913
朋友,你忘了文本框了吧,还有一个求和的
Private Sub Command2_Click()
Dim s As Long, k As Integer, a As Integer
a = Val(Text1Text)
Print f(a)
End Sub
Function f(n) As Long
s = 1: Sum = 1
For k = 2 To n
s = s k
Sum = Sum + s
Next
f = Sum
End Function
这样运行就OK啦
我没有自己写,也是百度搜索的,看下有没有帮助:
在窗体上放一个命令按纽,计算结果将在窗体上输出,代码如下(直接拷贝)
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = 2
b = 4
c = 6
nn a, b, c
End Sub
Sub nn(a As Integer, b As Integer, c As Integer)
Dim i As Integer, j As Integer, k As Integer, s1 As Integer, s2 As Integer, s3 As Integer
s1 = 1
s2 = 1
s3 = 1
For i = 1 To a
s1 = s1 i
Next i
For j = 1 To b
s2 = s2 j
Next j
For k = 1 To c
s3 = s3 k
Next k
Print "2!+4!+6!=" & s1 + s2 + s3
End Sub
Private Sub Command1_Click()
Dim n, i, a, b
n = 100 '假设是100之内的数
For i = 1 To n - 1
If i Mod 2 = 1 Then
a = a + fc(i)
Else
b = b + fc(i)
End If
Next
Print n & "之内奇数阶乘之和=" & a & vbNewLine & n & "之内偶数阶乘之和=" & b
End Sub
Function fc(n)
Dim i
fc = 1
For i = 1 To n
fc = fc i
Next
End Function
99的阶乘接近10的156次方,也就是说,是一个155位的数值,这个数值在VB的数值类型中,是无法精确存储的。
一般算法类型的编程题目,会求这个值的后6位这样的问题,或者使用贪心算法计算阶乘和问题,这类问题通常不会超过10的阶乘值或者整数变量范围。
s=0
for i= 1 to 99
for j=1 to i
s1=1
s1=s1j
next j
s=s+s1
next i
扩展资料:
由于正整数的阶乘是一种连乘运算,而0与任何实数相乘的结果都是0。所以用正整数阶乘的定义是无法推广或推导出0!=1的。即在连乘意义下无法解释“0!=1”。
给“0!”下定义只是为了相关公式的表述及运算更方便。
通常所说的阶乘是定义在自然数范围里的(大多科学计算器只能计算 0~69 的阶乘),小数科学计算器没有阶乘功能,如 05!,065!,0777!都是错误的。但是,有时候会将Gamma 函数定义为非整数的阶乘,因为当 x 是正整数 n 的时候,Gamma 函数的值是 n-1 的阶乘。
参考资料来源:百度百科-阶乘
以上就是关于求阶乘和,VB编程全部的内容,包括:求阶乘和,VB编程、用vb怎样写阶乘相加、“求1到10的阶乘之和”用VB怎么编程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)