美文网首页
火柴棍等式

火柴棍等式

作者: RQrry | 来源:发表于2019-08-22 18:42 被阅读0次

    数字 0-9 可以以下数组对应的个数拼成
    arr = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6]

    现有 m 根(m<=24)火柴棍,将所有火柴棍用于拼成例如 A+B=C 的等式,
    如果 A!=B,则 A+B=C 与 B+A=C 视为不同的等式(A、B、C 都大于 0)

    const number = function (n) {
      let num = 0;
      const arr = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6];
      while ((n/10 | 0) !== 0) {
        num += arr[n%10];
        n = n/10 | 0;
      }
      num += arr[n];
      return num;
    }
    
    const main = function(m) {
      let sum = 0;
      for (let a=0; a<=1111; a++) {
        for (let b=0; b<=1111; b++) {
          let c = a + b;
          if (number(a) + number(b) + number(c) === m-4) {
            sum++;
            console.log(a + ' + ' + b + ' = ' + c);
          }
        }
      }
      console.log('一共有 ' + sum + ' 个等式');
    }
    
    main(18);
    

    结果为:

    0 + 4 = 4
    0 + 11 = 11
    1 + 10 = 11
    2 + 2 = 4
    2 + 7 = 9
    4 + 0 = 4
    7 + 2 = 9
    10 + 1 = 11
    11 + 0 = 11
    一共有 9 个等式
    

    相关文章

      网友评论

          本文标题:火柴棍等式

          本文链接:https://www.haomeiwen.com/subject/maeosctx.html