主题:求助 算法问题
wwwjl555
[专家分:0] 发布于 2010-12-16 14:34:00
有变量Ai
假设:
A1 取值范围
10~20
A2 取值范围
0~50
A3 取值范围
10~50
。。。
An取值范围
0~5
如何编写算法 以取得 A1 + A2 +…+An=100
记录每次符合条件的Ai值
因为n不固定,这次n=5 下次可能n=10
本人用了最笨的循环语句 冗长拖沓 很不科学
各位高手们能不能帮帮忙 怎样编写更加精妙 谢谢了!!!
回复列表 (共4个回复)
沙发
wwwjl555 [专家分:0] 发布于 2010-12-17 10:17:00
我把我的算法晾一下 很丢人啊
大家一看就能明白 我只写了三个循环
还可以增加 但是是固定的 没办法 因为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
板凳
老大徒伤悲 [专家分:29120] 发布于 2010-12-17 16:15:00
可使用递归
3 楼
孙瑞 [专家分:590] 发布于 2010-12-28 22:45:00
递归调用的经典是汉诺塔问题的解决,你可以参看以下汉诺塔问题的程序。网上有
4 楼
rongduo [专家分:70] 发布于 2010-12-30 17:50:00
没看懂题,比如A4的取值范围是多少?
我来回复