VB编程问题
要求计算M的阶乘由inputbox输入M可以无限大需要考虑溢出问题。PS可以用数组用数组1-5得答案我自己也能做出来我的老师说可以用数组做一个为数用一个变量但我觉得肯定有...
要求计算M的阶乘 由inputbox输入 M可以无限大 需要考虑溢出问题。
PS 可以用数组
用数组 1-5得答案我自己也能做出来 我的老师说可以用数组做 一个为数用一个变量 但我觉得 肯定有个变量要=那个阶乘值 所以我就觉得不可能不溢出。。。。。我自己编的时候用的是双精度 展开
PS 可以用数组
用数组 1-5得答案我自己也能做出来 我的老师说可以用数组做 一个为数用一个变量 但我觉得 肯定有个变量要=那个阶乘值 所以我就觉得不可能不溢出。。。。。我自己编的时候用的是双精度 展开
展开全部
无限大就没有意义了,只要知道前边的若干位和位数就可以吧,我有个程序,以前写的,可以计算很大数的阶乘,只是结果只显示计算所需时间、求得结果的位数和结果的前10位,不过你完全可以修改成更精确的。如果你需要就e-mail:fyeat@sina.com,我把源程序发给你。
我的绝对不存在溢出问题,只有计算快慢的问题
我的绝对不存在溢出问题,只有计算快慢的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a() '动态数组
每个数组里存放一位数
比如求5的阶乘的时候
5
a(0)= 5
5*4
20
a(0) = 20
a(0) = 0 ,a(1) = 2
5*4*3 = 60
a(0) = a(0) * 3 = 0 ,a(1) = a(1) *3 = 6
5*4*3*2 = 120
a(0) = a(0) * 2 = 0 ,a(1) = a(1) * 2 = 12
a(0) = 0 , a(1) = 2, a(2) = 1
if a(i)>9 then
a(i+1) = a(i) + a(i)/10 (取整数)
a(i) = a(i) mod 10
end if
结果没必要给一个变量付值的, 把动态数组的值显示text就可以了
大概思路应该是这样的 完整的代码自己研究吧
顺便照顾下我的问题好吗 嘿嘿
http://zhidao.baidu.com/question/24451923.html
每个数组里存放一位数
比如求5的阶乘的时候
5
a(0)= 5
5*4
20
a(0) = 20
a(0) = 0 ,a(1) = 2
5*4*3 = 60
a(0) = a(0) * 3 = 0 ,a(1) = a(1) *3 = 6
5*4*3*2 = 120
a(0) = a(0) * 2 = 0 ,a(1) = a(1) * 2 = 12
a(0) = 0 , a(1) = 2, a(2) = 1
if a(i)>9 then
a(i+1) = a(i) + a(i)/10 (取整数)
a(i) = a(i) mod 10
end if
结果没必要给一个变量付值的, 把动态数组的值显示text就可以了
大概思路应该是这样的 完整的代码自己研究吧
顺便照顾下我的问题好吗 嘿嘿
http://zhidao.baidu.com/question/24451923.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
溢出问题:VB中的数据类型中的数字中的双精度数据类型是4.94....D-324到1.79.....D308(正数),你计算阶乘,如果超过1.79....D308,那么再有能耐的编程专家也在VB中是做不到的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dim sum As Double
Private Sub Command1_Click()
Dim i As Integer
sum = 1
a = InputBox("请输入数字:", "求阶乘")
If IsNumeric(a) Then
For i = 1 To a
sum = sum * i
Next i
Print a & "的阶乘是:" & sum
Else
MsgBox "请输入数字", vbInformation, "提示"
End If
End Sub
Private Sub Command1_Click()
Dim i As Integer
sum = 1
a = InputBox("请输入数字:", "求阶乘")
If IsNumeric(a) Then
For i = 1 To a
sum = sum * i
Next i
Print a & "的阶乘是:" & sum
Else
MsgBox "请输入数字", vbInformation, "提示"
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你自己给M 赋个最大值就可以了啊···循环到最大值的时候就自动停止了 这个你会吧!!!!!!!!!!!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询