C
creation-zy
Unregistered / Unconfirmed
GUEST, unregistred user!
大哥,您上面的代码好像没有使用新技术嘛。
for i:=EndPosdo
wn to 0do
begin
sub:=Remain-A;
if Sub>=0 then
begin
//可以加入该元素
....
end
else
ReplaceResult(Remain);
//不能加入该元素,尝试加入解 //*********
end;
至于您的将while并入for循环的改进,我觉得必要性不大,因为分开和合并的本质是相同
的——改变循环的实际起点。而上面倒数第二行我认为有问题,因为即使sub:=Remain-A;
为负数,您的算法也要进行一次函数调用“ReplaceResult(Remain);”——我认为此处的这
个调用是多余的。——在我将它删除之后,在Num=20,Sum=23456789的情况下和我的算法耗
时相当。
for i:=EndPosdo
wn to 0do
begin
sub:=Remain-A;
if Sub>=0 then
begin
//可以加入该元素
....
end
else
ReplaceResult(Remain);
//不能加入该元素,尝试加入解 //*********
end;
至于您的将while并入for循环的改进,我觉得必要性不大,因为分开和合并的本质是相同
的——改变循环的实际起点。而上面倒数第二行我认为有问题,因为即使sub:=Remain-A;
为负数,您的算法也要进行一次函数调用“ReplaceResult(Remain);”——我认为此处的这
个调用是多余的。——在我将它删除之后,在Num=20,Sum=23456789的情况下和我的算法耗
时相当。