实现一个以四位数字串为参数的函数,每个数字从1──►9(含),允许重复,并返回一个算术表达式,其值为24。如果不存在这样的解,则返回“没有解决方案。“
规则:
只允许以下运算符/函数:乘法,除法,加法,减法除法应使用浮点或有理算术等来保留余数。不允许从提供的数字中形成多位数字。 (所以当给出1,2,2和1时,12 + 12的答案是错误的)。给定的数字顺序不必保留。示例输入:
solve24("4878");
solve24("1234");
solve24("6789");
solve24("1127");
示例输出(字符串):
(7-8/8)*4
3*1*4*2
(6*8)/(9-7)
(1+7)*(2+1)
solve24
是一个函数。
testString: 'assert(typeof solve24 === "function", "solve24
is a function.");'
- text: solve24("4878")
应返回(7-8/8)*4
或4*(7-8/8)
testString: 'assert(include(answers[0], solve24(testCases[0])), "solve24("4878")
should return (7-8/8)*4
or 4*(7-8/8)
");'
- text: solve24("1234")
应返回1*2*3*4
任何排列
testString: 'assert(include(answers[1], solve24(testCases[1])), "solve24("1234")
should return any arrangement of 1*2*3*4
");'
- text: solve24("6789")
应返回(6*8)/(9-7)
或(8*6)/(9-7)
testString: 'assert(include(answers[2], solve24(testCases[2])), "solve24("6789")
should return (6*8)/(9-7)
or (8*6)/(9-7)
");'
- text: solve24("1127")
应该返回(1+7)*(1*2)
的排列
testString: 'assert(include(answers[3], solve24(testCases[3])), "solve24("1127")
should return a permutation of (1+7)*(1*2)
");'
```