问题陈述:
计算器坏了。只有少数数字[xcode-select --install
]和运算符[0 to 9
]有效。
请求号码需要使用工作数字和运算符来形成。键盘上的每次按下都称为操作。
+, -, *, /
运算符始终工作,并在请求号为no时使用。是由运营商组成的。 =
,以防请求号为。无法使用数字和提供的运算符形成或超过最大数量。允许的操作。 -1
] 输入:
0 <= calcno <= 999
代表1
,+
代表2
,-
代表3
,{{1代表*
]。输出
找到最低要求操作以形成请求号。
示例:
输入1:
4
可能的方式:
案例1: /
= - &gt; 2 1 8
2 5
3
50
案例2: 2*5*5
= - &gt; 6 operations
4是req Answer
输入2:
2*25
可能的方式:
案例1:4 operations
- &gt; 3 4 8
5 4 2
3 2 4 1
42
(直接键入)
案例2:42
= - &gt; 2 operations
..........其他一些方式
2是req Answer
我没有正确解决这个问题 有人可以提出一些解决问题的方法。
答案 0 :(得分:2)
给出了vish4071在评论中所说的更多背景信息。
按以下方式设置图表: 使用根启动图表,而不是新节点是您要大声使用的数字(例如,这是2和5)。并逐层建立图表。 按以下方式创建每个级别,新节点将包括添加数字或您要大声使用的运算符。在每个操作员之后,不能有另一个操作员。
如果节点的值高于目标值,则杀死节点(目标为结束音符),这仅适用于此示例(如果运算符为*和+)。如果你能够使用 - 和/运算符,这不是vallid。
这样做直到找到所需的值,并且等级(+1,由于=操作)是你的回答。
下图给出了图表的例子
for your first example:
D=0 D=1
5
/
Root /
\
\2
D=1 D=2 d=3 d=4
--2
/
/
(*)___5 --> reaches answer but at level 6
/
/ (*)___2 --> complete
/ / \ 5
/ /
2 /____25_252 --> end node
\ \
\ \
\
\ 225 --> end node
\ /
22__222 --> end node
\
(*)
这比粗暴强迫要好一些,也许有更优化的方式。