疑难问题
等式全排序
输⼊:⼩明⼿上牌的数字, 桌上牌的个数,桌上牌的数字,⽬标数字
输出:⼩明⼿上牌的数字与桌上牌的数字的四则运算组合(结果为⽬标数字)
如:⼩明⼿上牌 为 5 ,桌上数字有 13 6 1 3 9 4 2 2,⽬标数字为13
所得组合为:
5 / 1 / 3 * 9 - 4 + 2
5 / 1 * 3 - 9 * 4 + 2 / 2
5 / 1 * 3 + 9 + 4 - 2 / 2
5 / 1 - 3 * 9 / 4 + 2 * 2
5 / 1 - 3 * 9 + 4 / 2 + 2
5 / 1 - 3 + 9 + 4 - 2
!"#$%&'()*+($,-./
!"#$%&'()*$0,'"-/
!"#$%&'()*"-0,.(12/
!'(3"#()4)5
&0"#6)#12(071$()0,'8
"#,)#9:;;<8
+($,-.*"#,/)#&2=+>).(#&28
+($,-.*$?1./)$?1.=+>).($?1.8
"#,)21@=%(#)A);8
'-&B%().(8
$?1.)-7(.94<)A)C)DED>)DFD>)DGD>)DHDI8
+-"')0(JK"#,)2>"#,)L>)"#,)%(#>)'-&B%()0&2M)CEEL为利⽤的数字的位数
))))"3)K0&2)AA).()M)CEE如果当前计算结果0&2A.(要求的结果并且第⼀次满⾜,则跳出递归,保存结果
)))))))).(#&2)A)#&2=+8))))))))))EE数字结果存⼊.(#&2
)))))))).($?1.)A)$?1.=+8))))))))EE字符结果存⼊.($?1.
))))))))$-&,)**)2)**N)N8
))))))))3-.)K"#,)")A);8)")*).($?1.O0"P(KM)8)HH"M)C
))))))))))))"3K)")*).(#&2O0"P(KMMC
))))))))))))))))$-&,)**).($?1.9"<)**)N)N8
))))))))))))I
))))))))))))$-&,)**).(#&29"<)**)N)N8
))))))))I
))))))))$-&,)**)(#'%8
)))))))).(,&.#8
))))I
))))"3)KL)/A)%(#M).(,&.#8)))))))EEL⼤于总⻓度时,退出递归,表示找不到正确的结果
))))#&2=+O7&0?=B1$LK#9L<M8))))))EE将第L位数字加⼊#&2=+
))))3-.)K"#,)")A);8)")*)48)"HHM)CEE对字符进⾏选择,先往符号数组加⼊,再递归调⽤
))))))))$?1.)-7)A)-7(.9"<8
))))))))"3)K-7)AA)DHDM)C
))))))))))))$?1.=+O7&0?=B1$LKDHDM8
))))))))))))0(JK2>L)H):>)%(#>)0&2)H)#9L<M8
))))))))I
))))))))(%0()"3)K-7)AA)DFDM)C
))))))))))))$?1.=+O7&0?=B1$LKDFDM8
))))))))))))0(JK2>L)H):>)%(#>)0&2)F)#9L<M8
))))))))))))
:
Q
R
5
S
T
U
V
W
:;
::
:Q
:R
:5
:S
:T
:U
:V
:W
Q;
Q:
QQ
QR
Q5
QS
QT
QU
QV
QW
R;
R:
RQ
RR
R5
RS
RT
RU