求阶乘和,VB编程

求阶乘和,VB编程,第1张

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

Print

'采用函数

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怎么编程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10118571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存