该函数运行带有 回溯 功能的相当简单的
蛮力搜索
:在每个调用级别,它都尝试将数字加到该数字上,并查看是否从结果数字开始将您带到目标。如果是,则返回结果;否则,返回结果。否则,将数字乘以,然后从该新数字继续搜索目标。随着递归的进行,生成数字的表达式的文本表示形式将传递到下一个调用级别。
__
5``3
搜索
14如下:
(1, "1")(5, "1+5")(10, "(1+5)+5")(15, "((1+5)+5)+5") <<= Fail(30, "((1+5)+5)*3") <<= Fail(15, "(1+5)*3") <<= Fail(3, "1*3")(8, "(1*3)+5")(13, "((1*3)+5)+5")(18, "(((1*3)+5)+5)+5") <<= Fail(39, "(((1*3)+5)+5)*3") <<= Fail(24, "((1*3)+5)*3") <<= Fail(9, "(1*3)*3")(14, "((1*3)*3)+5) <<= Success!



