vb求阶乘 求1!+3!+5!+···99!

来自:    更新日期:早些时候
1*3*5*7*…*99 编写VB程序~

这串数字计算结果应该是非常大的数吧,可能会出现溢出的情况。可以考虑使用双精度的数据类型来计算,可以修改如下:
Dim s As Double

s = 1
For i = 1 To 99 Step 2
s = s * i
Next i
MsgBox s

呵呵,很久没写这些东西了,随便来个,你试一试

dim i as integer '存放数列项的绝对值,如你的1,3,5等
dim last as integer '数列最后一项值,如你的101
dim op as integer '符号
dim total as long '存放总和

last=inputbox "请输入最后的值" '输入合法性代码,你自己写吧
i=1
op=-1
do while i<=abs(last)
op=op*(-1)
total=total+i*op
i=i+2
loop

大致思路是,数值管数值,符号管符号

计算1!+3!+....99! 即100以内所有奇数的阶乘

结果为 9.33358357530259E+155

算法代码:
Private Sub Command1_Click()
For i = 1 To 99 Step 2
p = 1
For j = 1 To i
p = p * j
Next
s = s + p
Next
MsgBox s
End Sub

99! 太大了吧。。。 9! 还差不多
Sub Form_Click
jc = 1
For i = 1 To 9'9
jc = jc * i
If i And 1 Then s = s + jc
Next
Print s
End Sub

Private Sub Command1_Click()
Dim i As Integer
Dim aa As Double
For i = 1 To 99 Step 2
aa = aa + jc(i)
Next i
Print aa
End Sub

’阶乘函数
Function jc(TmpNum As Integer)
Dim i As Integer
jc = 1
For i = 1 To TmpNum
jc = jc * i
Next i
End Function

Private Sub Command1_Click()
Dim nTemp As Double

For i = 1 To 99 Step 2
nTemp = nTemp + getFactorial(i)
Next
Debug.Print nTemp
End Sub

Private Function getFactorial(ByVal nSource As Long) As Double
Dim nTemp As Double

nTemp = 1
For i = nSource To 2 Step -1
nTemp = nTemp * i
Next
getFactorial = nTemp
End Function


vb求阶乘 求1!+3!+5!+···99!视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网