易语言采用穷举算法解决邮票组合

算法实现

界面放两个编辑框,一个显示邮票种类个数,一个显示邮资种类。

.版本 2
 
.子程序 _计算图形按钮_被单击
.局部变量 循环变量1, 整数型, , , 既作为循环变量,又作为取面值为3的邮票的张数
.局部变量 循环变量2, 整数型, , , 既作为循环变量,又作为取面值为5的邮票的张数
.局部变量 循环变量3, 整数型
.局部变量 种类数组, 整数型, , "0", 存放找到的邮票组合
.局部变量 邮票组合面值, 整数型, , , 存放找到的一个邮票组合的面值
.局部变量 标志变量, 逻辑型, , , 标识找到的邮票组合是否已存在
.局部变量 邮票组合个数, 整数型, , , 统计邮票组合的个数
 
' 邮资种类数编辑框 = “”
' 邮资种类编辑框 = “”
邮票组合个数 = 0
.变量循环首 (1, 5, 1, 循环变量1)  ' 取3分邮票的张数
    .变量循环首 (1, 4, 1, 循环变量2)  '5分邮票的张数
        邮票组合面值 = (循环变量11) × 3(循环变量21) × 5  ' 计算组成的邮票面值
        标志变量 = 假
        .变量循环首 (1, 取数组成员数 (种类数组), 1, 循环变量3)  ' 查找是否有相同的邮资
            .如果真 (邮票组合面值 = 种类数组 [循环变量3])
                标志变量 = 真
                跳出循环 ()
            .如果真结束
 
        .变量循环尾 ()
        .如果真 (标志变量 = 假 且 邮票组合面值 ≠ 0)  ' 没有找到相同的邮资则满足要求存入数组
            加入成员 (种类数组, 邮票组合面值)
            邮资种类编辑框.加入文本 (到文本 (邮票组合面值), #换行符)  ' 显示结果
            邮票组合个数 = 邮票组合个数 + 1  ' 邮资种类个数
        .如果真结束
 
    .变量循环尾 ()
.变量循环尾 ()
邮资种类数编辑框.内容 = 到文本 (邮票组合个数)  ' 输出邮资种类个数

发布日期:

所属分类: 易语言 标签: