|
发表于 2025-2-25 07:35:39
|
显示全部楼层
广东省东莞市
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 寻找组合 (5, 40, 组合数组 ) 输出调试文本 (“40分5份:”)调试输出 (组合数组 )清除数组 (组合数组 )寻找组合 (4, 30, 组合数组 ) 输出调试文本 (“30分4份:”)调试输出 (组合数组 )|
寻找组合 | 整数型 | | |
份数 | 整数型 | | | | 目标值 | 整数型 | | | | 结果容器 | 文本型 | | | | 清除数组 (结果容器 ) 初始化组合处理 (份数, 目标值, 临时数组, 结果容器 )返回 (取数组成员数 (结果容器 )) |
初始化组合处理 | | | |
n | 整数型 | | | | target | 整数型 | | | | 当前组合 | 整数型 | | | | 结果容器 | 文本型 | | | | 回溯生成组合 (当前组合, 1, 0, n, target, 结果容器 )|
回溯生成组合 | | | |
当前组合 | 整数型 | | | | 起始值 | 整数型 | | | | 当前和 | 整数型 | | | | 剩余份数 | 整数型 | | | | 总目标 | 整数型 | | | | 结果容器 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | x | 整数型 | | | 下限值 | 整数型 | | | 上限值 | 整数型 | | | 需要数值 | 整数型 | | | 临时组合 | 整数型 | | 0 |
如果真 (剩余份数 = 0 ) 如果真 (当前和 = 总目标 ) 数组转文本 (当前组合, 结果容器 ) 返回 () 需要数值 = 总目标 - 当前和 下限值 = 取最大值A (起始值, 需要数值 - 10 (剩余份数 - 1 )) 上限值 = 取最小值A (10, 需要数值 ÷ 剩余份数 ) 如果真 (剩余份数 = 1 ) 如果真 (下限值 ≤ 需要数值 且 需要数值 ≤ 10 ) 加入成员 (临时组合, 当前组合 ) 加入成员 (临时组合, 需要数值 ) 回溯生成组合 (临时组合, 需要数值, 当前和 + 需要数值, 0, 总目标, 结果容器 ) 返回 () 变量循环首 (下限值, 上限值, 1, x ) 加入成员 (临时组合, 当前组合 ) 加入成员 (临时组合, x ) 回溯生成组合 (临时组合, x, 当前和 + x, 剩余份数 - 1, 总目标, 结果容器 ) 清除数组 (临时组合 ) 变量循环尾 ()文本 = “[” 计次循环首 (取数组成员数 (数组 ), i ) 文本 = 文本 + 到文本 (数组 [i ]) 如果真 (i ≠ 取数组成员数 (数组 ))   文本 = 文本 + “-”  计次循环尾 ()文本 = 文本 + “]”加入成员 (结果, 文本 )返回 (选择 (a > b, a, b )) 返回 (选择 (a < b, a, b ))
可以任意份数和目标值
|
|