vb循环语句问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:45:47
求1/1+1/2+1/3+……+1/n>=100的最小n值
输入两个数 求最小公约数
代码怎么写,顺便算法思路讲一下

第一个:
sub findmin()

dim i,n as integer
dim result as double
result=1
n=1
do
n=n+1
result=result+1/n
if result>=100 then
exit do
end if
loop
msgbox("最小n:",n)
end sub

第二个:

sub findGYS(x as integer,y as integer)
dim i,min as integer
min=x
if(x>y) then
min=y
end if
for i=1 to min
if x mod i=0 and y mod i=0 then
msgbox("最小公约数是:",i)
exit for
end if

next

end sub

-------楼上的 成都豺狼,请看:---------------------

第一,拜托你学学数学好不好,这是个调和级数,发散的,没有上限,必会大于100.exit do 难道不是结束循环吗,怎么是死循环?
第二,拜托你学学数学好不好,任何两个整数的最小公约数就是1.所以,for 语句执行一步就会结束了,答案也出来了。

sas_razor的 findmin 是死循环,如 但愿永远不懂 所说的

第二个改一下
sub findGYS(x as integer,y as integer)
dim i,min as integer
min= IIf(x > y, y, x)
for i=1 to min+1
if x mod i=0 and y