|
发表于 2025-2-25 10:39:10
|
显示全部楼层
山东省东营市

窗口程序集名 | 保 留 | 保 留 | 备 注 | 程序集1 | | | | 变量名 | 类 型 | 数组 | 备 注 | 文件号 | 整数型 | | 调试输出 (取运行目录 ()) 文件号 = 打开文件 (“结果.txt”, #改写, ) 如果真 (文件号 = 0 ) 信息框 (“无法创建文件!”, 0, , ) 返回 (0 ) 生成组合 (1, 结果数组, 40, 0, 5, 1, 10 ) 生成组合 (1, 结果数组, 30, 0, 4, 1, 10 )关闭文件 (文件号 )信息框 (“结果已保存到结果.txt”, 0, , )返回 (0 )|
生成组合 | | | |
当前位置 | 整数型 | | | | 当前数组 | 整数型 | | | | 剩余总和 | 整数型 | | | | 前一个数 | 整数型 | | | | 总份数 | 整数型 | | | | 最小值 | 整数型 | | | | 最大值 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | 起始值 | 整数型 | | | remaining | 整数型 | | | 剩下位置数 | 整数型 | | | min_required | 整数型 | | | max_allowed | 整数型 | | |
如果 (当前位置 = 总份数 ) 如果 (剩余总和 ≥ 前一个数 且 剩余总和 ≤ 最大值 且 剩余总和 ≥ 最小值 ) 加入成员 (当前数组, 剩余总和 ) 写出文本 (文件号, 数组到字符串 (当前数组, “-”) + #换行符 ) 删除成员 (当前数组, 取数组成员数 (当前数组 ), 1 )       起始值 = 前一个数  如果 (起始值 < 最小值 )  起始值 = 最小值        变量循环首 (起始值, 最大值, 1, i )  remaining = 剩余总和 - i   剩下位置数 = 总份数 - 当前位置   min_required = 剩下位置数 × 最小值   max_allowed = 剩下位置数 × 最大值   如果真 (remaining ≥ min_required 且 remaining ≤ max_allowed )  加入成员 (当前数组, i )  生成组合 (当前位置 + 1, 当前数组, remaining, i, 总份数, 最小值, 最大值 )  删除成员 (当前数组, 取数组成员数 (当前数组 ), 1 )    变量循环尾 ()返回 () 计次循环首 (取数组成员数 (数组 ), i ) 结果 = 结果 + 到文本 (数组 [i ]) + 分隔符 计次循环尾 () 如果真 (取文本长度 (结果 ) > 0 ) 结果 = 取文本左边 (结果, 取文本长度 (结果 ) - 取文本长度 (分隔符 )) 返回 (结果 )
运行结果
1-9-10-10-10
2-8-10-10-10
2-9-9-10-10
3-7-10-10-10
3-8-9-10-10
3-9-9-9-10
4-6-10-10-10
4-7-9-10-10
4-8-8-10-10
4-8-9-9-10
4-9-9-9-9
5-5-10-10-10
5-6-9-10-10
5-7-8-10-10
5-7-9-9-10
5-8-8-9-10
5-8-9-9-9
6-6-8-10-10
6-6-9-9-10
6-7-7-10-10
6-7-8-9-10
6-7-9-9-9
6-8-8-8-10
6-8-8-9-9
7-7-7-9-10
7-7-8-8-10
7-7-8-9-9
7-8-8-8-9
8-8-8-8-8
1-9-10-10
2-8-10-10
2-9-9-10
3-7-10-10
3-8-9-10
3-9-9-9
4-6-10-10
4-7-9-10
4-8-8-10
4-8-9-9
5-5-10-10
5-6-9-10
5-7-8-10
5-7-9-9
5-8-8-9
6-6-8-10
6-6-9-9
6-7-7-10
6-7-8-9
6-8-8-8
7-7-7-9
7-7-8-8 源码文件:
111.e
(4.95 KB, 下载次数: 0)
|
|