实现一个以四位数字串为参数的函数,每个数字从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)");'
```