s=0 n=0 do n=n+1 s=s+n loop until s>500 print "n=";n end sub
Private Sub Command1_Click() Dim Temp As Long, Num As Long Do Temp = Temp + 1 Num = Num + Temp If Num >= 500 Then Exit Do Loop Until Num >= 500 MsgBox Temp End Sub temp=32
If Num >= 500 Then Exit Do 这句可以去掉
s = 0 n = 0 do n = n + 1 s = s + n loop until s > 500 print "n=";n
n=0
do
n=n+1
s=s+n
loop until s>500
print "n=";n
end sub
Dim Temp As Long, Num As Long
Do
Temp = Temp + 1
Num = Num + Temp
If Num >= 500 Then Exit Do
Loop Until Num >= 500
MsgBox Temp
End Sub
temp=32
这句可以去掉
n = 0
do
n = n + 1
s = s + n
loop until s > 500
print "n=";n
分析如下:
1+2+3...n=n*(n+1)/2>=S
==>n^2+n>=S
由于n是满足条件最小的整数 所以
n^2<n^2+n<(n+1)^2
由此可见n^2+n 不是个平方数 故推出当n>1时
n=int(sqr(S)+1)
把S=1000代入既得
int(sqr(1000)+1)
由于n是满足条件最小的整数 所以
n^2<n^2+n<(n+1)^2
由此可见n^2+n 不是个平方数 故推出当n>1时
n=int(sqr(S)+1)
改为
==>n^2+n>=S*2
由于n是满足条件最小的整数 所以
n^2<n^2+n<(n+1)^2
由此可见n^2+n 不是个平方数 故推出当n>1时
n=int(sqr(S*2)+1)