链接:https://pan.baidu.com/s/1ah8Slfn9JP7uGNjEkViZig
提取码:yp15
从数组中取出任意个数,求和为指定值的解
var
TestArr:TArray<integer>;
procedure CalSum(Arr:TArray<Integer>;Res:Integer);
var
i,j,sum:Integer;
temp:string;
begin
for i:= 1 to (1 shl Length(Arr))-1 do
begin
sum:=0;
temp:='';
for j:= 0 to Length(Arr)-1 do
begin
if (i and (1 shl j))<>0 then // 建立映射,找出选择位上的元素
begin
sum:=sum+Arr[j];
temp:=temp+Arr[j].ToString;
end;
end;
if sum=Res then
begin
Writeln(temp);
end;
end;
end;
begin
TestArr:=[1,2,3,4,5,6,7,8,9];
CalSum(TestArr,10);
Readln;
end.
参考https://zhuanlan.zhihu.com/p/71115874
Excel解决方案