在令人困惑的SE上,存在所谓的“火柴问题”,其中数学是用火柴写的,并且允许您移动一定数量的火柴以获得某种属性。
在这个问题中,我们将只考虑以7段显示格式表示的整数。这是该格式的所有10位数字:
__ __ __ __ __ __ __ __
| | | __| __| |__| |__ |__ | |__| |__|
|__| | |__ __| | __| |__| | |__| __|
显示屏的每个部分都是一个“火柴棍”,可以独立于其余数字移动。火柴是不可分割和坚不可摧的,不能以任何方式将其破坏或移走。
一个常见的难题是采用以10为底的给定数字,并尝试在给定的移动次数中使最大数字成为可能。一次移动被认为是火柴棍从任何占用的插槽到任何其他未占用的插槽的移动。完全可以在数字的两边输入新数字,例如0可以变成77给出3个移动
__ __ __ __ __ __ __
| | | | | | | | |
|__| , __| , | , | |
但是,您不能将一个插槽分成2个,也不能在现有插槽之间创建新的插槽,例如,将4变成数字中间的11,或者在现有数字之间插入新的数字。每次移动都不需要输入正确的数字,但是最终结果应该是在以10为基数的七段显示中的正确数字。如果您不希望,则无需使用任何举动。与令人费解的问题不同,这是一个[tag:封闭式问题],您在答案中不得使用任何运算符(乘法,乘幂等)或数学常数(Pi,格雷厄姆数等)。
任务
编写一个程序或函数,该程序或函数将一个数字和一个移动数作为输入,并返回可以用原始数字上的多个移动数进行的最大数运算。
这是一个 代码问题,因此答案将以字节计分,字节越少越好。
测试用例
n, moves -> max
0, 1 -> 9
0, 3 -> 77
0, 4 -> 111
8, 3 -> 74
220, 1 -> 320
220, 2 -> 520
220, 3 -> 7227
220, 4 -> 22111
220, 5 -> 32111
747, 1 -> 747
747, 2 -> 7171
747, 3 -> 7711
919, 2 -> 991