小编Ald*_*ldo的帖子

递归树函数?

我有一项任务,我已经坚持了太久.我应该考虑从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)

c tree recursion

5
推荐指数
1
解决办法
597
查看次数

标签 统计

c ×1

recursion ×1

tree ×1