当前位置:编程学习 > C#/ASP.NET >>

设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

--------------------编程问答--------------------
引用 5 楼 hwman 的回复:
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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,