我有一项任务,我已经坚持了太久.我应该考虑从1到N的所有可能的表达式,如下所示:
n = 5;
1 % 2 % 3 % 4 % 5 = ?
Run Code Online (Sandbox Code Playgroud)
其中%可以是加法,减法或乘法(+, - ,*)我要做的是考虑这些操作的所有可能组合,并计算结果表达式等于n本身的数量.
因此,例如,对于n = 4,答案是1,因为只有一个表达式等于n.
1 + 2 - 3 + 4 = 4
Run Code Online (Sandbox Code Playgroud)
还有一些注意事项 - 乘法比其他两个操作更强大.所以举个例子
1 + 2 + 3 * 4 * 5 + 6
Run Code Online (Sandbox Code Playgroud)
需要解析为
1 + 2 + (3 * 4 * 5) + 6
Run Code Online (Sandbox Code Playgroud)
此外,乘法只能用一个最大的5次连续(而不是在全部),所以任何下N = 20将能够适应整数.为了解决这个问题,我编写了这个递归树,但是在更高的值(例如n = 15)时,我的输出变得不正确.
[N ] - [Expected result] [My program's result]
[5 ] - [ 3] [ …Run Code Online (Sandbox Code Playgroud)