设s=1*2*3*...*n,求s不大于40000时最大的n
我刚开始学习vb.net,请教高手用vb.net求:设s=1*2*3*...*n,求s不大于40000时最大的n
Dim n As Integer
Dim s As Long
s = 1
For n = 1 To 10
s = s * n
If s <= 40000 Then
TextBox1.Text = n
End If
Next
这是我自己编的,请教能不能不知道n的范围求n? --------------------编程问答-------------------- Dim n As Integer
Dim s As Long
n = 1
s = 1
do while s < 40000
s = s * n
n = n+1
loop
If s >= 40000 Then
TextBox1.Text = n
End If
vb的语法不记得了,思路是这样的。
你也可以。for n =1 to 40000 --------------------编程问答-------------------- Dim Total As Integer = 40000
Dim s As Integer = 1
For i As Integer = 1 To Integer.MaxValue
s = s * i
If s > Total Then
MsgBox((i - 1).ToString)
Exit For
End If
Next --------------------编程问答-------------------- 谢谢了,
不过你的代码运行的结果是9 ,应该是7才对 --------------------编程问答-------------------- 2楼的结果是对,但是我不怎么看得懂 --------------------编程问答-------------------- s = 1
i = 1
while s<=40000
i = i + 1
s = s * i
wend
print i-1
--------------------编程问答--------------------
你这貌似是VB6.0的语法 --------------------编程问答-------------------- Dim n As Integer
Dim s As Long
n = 0
s = 1
While s < 40000
n = n + 1
s = s * n
End While
TextBox1.Text = n - 1
因为当最后一次满足条件后,还作了一次循环,所以最后得到的n是比标准答案大一
运行结果:7
补充:.NET技术 , VB.NET