一个简单的vb计算问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:16:22
M=1*2*3*4.....*N
M不大于200000时的N的最大值,谢谢,(不知道用循环怎么写,刚入门)

Private Sub Command1_Click()
MsgBox "使M<200000的最大N值为:" + CStr(MaxN(200000))
End Sub

Function MaxN(ByVal M As Long) As Long
Dim i As Long
Dim N As Long

i = 1
N = 1
For i = 1 To M'用M做为最大值,N结果在1-M之间一定会成立
N = N * i
If N > M Then
MaxN = i - 1'此时N值已经大于M,所以保证N不大于M的最大的i应该是当前i-1
Exit Function
End If
Next i
End Function

在窗体上加一个文本框Text1,一个按钮Command1
代码如下:
Private Sub Command1_Click()
Dim m As Long
Dim i As Long
m = 1
i = 1
Do While m < 200000
m = m * i
i = i + 1
Loop
Text1.Text = i-1
End Sub

我是写C#的~忘记VB怎么用了~写个C#的你看看吧~其实结构一样的!

int64 M = 1;
int64 i = 0;
for(int64 N = 1;N<200000;N++)
{
i = i+1;
M = M*N;
if(M>200000)
{
N = 200001;
}
}
最后输出i的值就好了!

说明下:
i是一个中间量,i=i+1表示循环一次就加一,