VB 计算1*2*3···*m的值,其中m的值由用户输入

VB 计算1*2*3···*m的值,其中m的值由用户输入
【算法提示】
1.设置计算变量n和累积变量t,它们的初值都置为1
2.设计一个循环过程.在循环体中,用赋值语句 t=t*n 将n的值累乘,赋值语句n=n+1使n的每循环一次都增加1
3.当n的值大于m时,循环结束.
【思考】1.若m的值很大,对程序有什么影响,应该怎样处理?
2.若公式改为1+2+3+···+m,程序又如何修改
Kang33 1年前 已收到1个回答 举报

我爱考啦 春芽

共回答了13个问题采纳率:84.6% 举报

’试一下
Private Sub Command1_Click()
Dim t,n,m
m = InputBox("输入一个正整数:",,10)
If IsNumeric(m) Then
m = Val(m)
t = 1:n = 1
Do Until n > m
t = t * n
n = n + 1
Loop
Print t
End If
End Sub
Private Sub Command2_Click()
Dim t,n,m
m = InputBox("输入一个正整数:",,10)
If IsNumeric(m) Then
n = 1:m = Val(m)
n = 1
Do Until n > m
t = t + n
n = n + 1
Loop
Print t
End If
End Su

1年前 追问

7

Kang33 举报

你好!打饶了,程序是对的,但是数值输入大一点,就会溢出,上面我也补充过问题,若m的值很大,应该怎样处理

举报 我爱考啦

‘这个题目的本意是t定义成一个long,我已经把t定义成一个变体了,如果在溢出说明你取值范围已经太夸张了,你的m取值是多少?第一题m取150结果是5.71338395644585E+262 ,这数够大吧,如果还要大那不是用这样的方法的,估计你老师也不清楚,不信你去问问他。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.694 s. - webmaster@yulucn.com