链接: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.

 

从M个数取N个,和为固定值_数组

  参考https://zhuanlan.zhihu.com/p/71115874

Excel解决方案

Excel规划求解求哪几个数字之和等于一个固定值