回 帖 发 新 帖 刷新版面

主题:求助 算法问题

有变量Ai
假设:
A1 取值范围
10~20
A2 取值范围
0~50
A3 取值范围
10~50
。。。
An取值范围
0~5




如何编写算法 以取得 A1  + A2  +…+An=100
记录每次符合条件的Ai值
因为n不固定,这次n=5 下次可能n=10 
本人用了最笨的循环语句 冗长拖沓 很不科学
各位高手们能不能帮帮忙 怎样编写更加精妙 谢谢了!!!

回复列表 (共4个回复)

沙发

我把我的算法晾一下 很丢人啊
大家一看就能明白 我只写了三个循环 
还可以增加 但是是固定的 没办法 因为n有不定性 我总不能无限制的增加语句吧
请大家帮帮忙 程序到了这里我写不下去了 急啊 再次拜托各位帮帮忙 谢谢了!!
line1 for a1=10 to 20 
if n-1=0 then goto line2 end if
for a2=0 to 50 
if n-2=0 then goto line2 end if
for a3=10 to 50 
if n-1=0 then goto line2 end if
line2 if a1+a2+a3=100 then
i=i+1
b(i,1)=a1
b(i,2)=a2
b(i,3)=a3
end if
select case n
case 3  goto line3
case 2 goto line4
case 1 got line5
endselect
line 3 next a3
line 4 next a2
line 5 next a1

板凳

可使用递归

3 楼

递归调用的经典是汉诺塔问题的解决,你可以参看以下汉诺塔问题的程序。网上有

4 楼

没看懂题,比如A4的取值范围是多少?

我来回复

您尚未登录,请登录后再回复。点此登录或注册