vb阶乘问题怎么做

vb阶乘问题怎么做,第1张

阶乘,其实就是一个循环而已,当然,因为要用DO来进行,比较简单的如下:

Private Sub Command1_Click()

Dim i As Long, j As Long, k As Long

k = 6 '要进行阶乘的数

i = 1 '阶乘的结果

j = 1

Do

i = i j

j = j + 1

Loop Until j > k

MsgBox CStr(k) & "的阶乘=" & CStr(i)

End Sub

实际上,阶乘必然要涉及到一个问题,那就是变量的数据范围,一般处理整数都是用Long的,Long的的上限是2^31-1,大概20亿多一点,用其他的变量类型处理起来很不方便,像取余和整除,超过Long的上限都不能用。

所以,要处理大的整数,就不能直接用变量来处理,我的方法是用一个数组来表达一个整数,然后,当要对这个整数进行运算时,就调用事先编好的函数来代替一般的加减乘除和取余整除。最简单的想法就是用数组的每一个元素来表达整数的每一位,当然是十进制下的一位,这样编写运算用的函数非常简单,当然如果要考虑效率的话,可以用数组的每一个元素来表达整数的三位,效率最高的情况应该是每一个元素代表1024,只是这样一来转化回正常十进制的整数要稍微麻烦一些。

Private Sub Command1_Click()

Dim a As Long, b As Long, c As Long

a = Val(InputBox("输入a", "提示"))

b = Val(InputBox("输入b", "提示"))

c = Val(InputBox("输入c", "提示"))

Dim r as Long

r=Multiply(a)+Multiply(b)+Multiply(c)

Print r

End Sub

Private Function Multiply(n As Long) As Long

Dim x As Long

Multiply = 1

For x = 1 To n

Multiply = Multiply x

Next

End Function

建一个Command1。中间那部分就是运算程序。

代码如下。

=============

Private Sub Command1_Click()

Dim a As Integer, i As Integer, s As Double

s = 1

a = InputBox("输入数")

For i = 2 To a

s = s i

Next

MsgBox a & "的阶乘是:" & s

End Sub

按照你给出的结果,12345=120 。其源代码如下:

Private Sub Command1_Click()

Cls

n = Val(Text1Text)

For i = 1 To n

Print i;

If (i < n) Then

Print "";

Else: Print "=";

End If

Next i

s = 1

For j = 1 To n

s = s j

Next j

Print s

End Sub

自己编写函数代码:

Private Function 求阶乘(Byval n As Integer) As Long

Dim i As Integer

Dim Fac As Long

Fac = 1

For i = 1 To n

Fac = Fac i

Next i

求阶乘 = Fac

End Function

在你需要求阶乘的地方,调用该函数:

例如:

Dim y As Long

y = 求阶乘(10) '求阶乘(10)将用10调用上面的自定义函数,返回10的阶乘

以上就是关于vb阶乘问题怎么做全部的内容,包括:vb阶乘问题怎么做、VB中关于阶乘、阶乘在VB 中怎么写呀等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9468944.html

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

发表评论

登录后才能评论

评论列表(0条)

保存