//数据组合,根据目标值和组合数据个数,选择出大于大于目标值的最小组合
//如设定3数组合,查找数据表任意三个数的和,选出大于目标且最接近目标的 三个数。
//计算数据库各个数与目标值差
FOR #I:= 0 TO 7 DO
#计算组[#I] := #数据库.数组[#I] - #目标值;
END_FOR;
//根据选择组合数做出判断
CASE #组合数 OF
1: // 求出最接近目标数的值
FOR #I := 1 TO 7 DO
IF #计算组[#I] > 0 THEN
#A := #计算组[#I];
FOR #J := #I + 1 TO 7 DO
IF (#计算组[#J] < #A) THEN
#A := #计算组[#J];
END_IF;
END_FOR;
IF #A = #计算组[#I] THEN
#编号1 := #I;
ELSE
#编号1 := #J;
END_IF;
EXIT;
END_IF;
END_FOR;
2://任意组合两个数,算出大于零的最小值
#A := 0;
FOR #I := 0 TO 6 DO
FOR #J := #I+1 TO 7 DO
#B := #计算组[#I] + #计算组[#J];
IF (#B > #A) AND (#K = 0) THEN
#A := #B;
#编号1 := #I;
#编号2 := #J;
#K := 1;
END_IF;
IF #B < #A THEN
#A := #B;
#编号1 := #I;
#编号2 := #J;
END_IF;
END_FOR;
END_FOR;
楼主最近还看过