freeCodeCamp/curriculum/challenges/chinese/08-coding-interview-prep/rosetta-code/24-game.chinese.md

2.6 KiB
Raw Blame History

title id challengeType videoUrl localeTitle
24 game 5951e88f64ebf159166a1176 5 24场比赛

Description

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

Instructions

Tests

tests:
  - text: <code>solve24</code>是一个函数。
    testString: 'assert(typeof solve24 === "function", "<code>solve24</code> is a function.");'
  - text: <code>solve24(&quot;4878&quot;)</code>应返回<code>(7-8/8)*4</code>或<code>4*(7-8/8)</code>
    testString: 'assert(include(answers[0], solve24(testCases[0])), "<code>solve24("4878")</code> should return <code>(7-8/8)*4</code> or <code>4*(7-8/8)</code>");'
  - text: <code>solve24(&quot;1234&quot;)</code>应返回<code>1*2*3*4</code>任何排列
    testString: 'assert(include(answers[1], solve24(testCases[1])), "<code>solve24("1234")</code> should return any arrangement of <code>1*2*3*4</code>");'
  - text: <code>solve24(&quot;6789&quot;)</code>应返回<code>(6*8)/(9-7)</code>或<code>(8*6)/(9-7)</code>
    testString: 'assert(include(answers[2], solve24(testCases[2])), "<code>solve24("6789")</code> should return <code>(6*8)/(9-7)</code> or <code>(8*6)/(9-7)</code>");'
  - text: <code>solve24(&quot;1127&quot;)</code>应该返回<code>(1+7)*(1*2)</code>的排列
    testString: 'assert(include(answers[3], solve24(testCases[3])), "<code>solve24("1127")</code> should return a permutation of <code>(1+7)*(1*2)</code>");'

Challenge Seed

function solve24 (numStr) {
  // Good luck!
  return true;
}

After Test

console.info('after the test');

Solution

// solution required