这是我的问题:“我给你 4 个数字 1、2、3、4。我希望你使用所有这四个数字来创建数字 1、2、3 等的数学表达式。获胜者将是产生从 1 向上的最长数字范围。您可以使用数学符号 + - * / 。此外,允许使用括号和平方根。请注意,您可以将数字并排放置以形成 2 或 3 位数字. 例子是:
1 = ( 3/1 ) - ( 4/ 2 )
2 = ( 2 * 3 ) – ( 4/1)
3 = 21 / ( 3 + 4 )
4 = "
所以我需要一个算法:
`Input: an integer`
`Output: an expression formed by digits 1,2,3,4`
现在我只能想到蛮力算法:
First try the expression which formed by only one-digit number. In this expression, try all 4 operators +,-,*,/ in every possible position. Then try to put more bracket.
Then try try the expression which formed by two-digit number and two one digit number...
但是实现这个算法很困难,因为我想不出所有的情况。
有人有更好的想法吗?