循环三位数,乘积==和

时间:2018-09-09 18:59:45

标签: javascript

所以我要完成这个任务,我必须将三个循环嵌套在一起,然后找出乘积== sum的所有三个数字。

例如:

123

1*2*3 = 6
1+2+3 = 6

这是我到目前为止尝试过的:

var summen = a + b + c;
var produktet = a * b * c;

for (var i = 100; i <= 100; i++) {
for (var j = 100; j <= 101; j++) {
    for (var e = 100; e < 1000; e++) {
            if (summen == produktet) {
                pOutput.innerHTML += e + " ";

     }
}
}

提前谢谢您,我们将不胜感激!

(我以为我需要使用if和else,但说实话我还是很固执)

2 个答案:

答案 0 :(得分:0)

您可以从零迭代到999,然后将字符串值作为数组。然后根据乘积检查总和,并存储等于的值。

const
    sum = array => array.reduce((a, b) => a + b),
    product = array => array.reduce((a, b) => a * b);

var i,
    temp,
    values = [];
    
for (i = 0; i < 1000; i++) {
    temp = Array.from(i.toString().padStart(3, '0'), Number);
    if (sum(temp) === product(temp)) {
        values.push(temp.join(''));
    }
}
console.log(values);

答案 1 :(得分:0)

如果要进行三个循环,请使用三个从0开始到9结束的循环,然后在内部循环中相加并相乘:

let output = [];

for (let a = 0; a < 10; a++) {
  for (let b = 0; b < 10; b++) {
    for (let c = 0; c < 10; c++) {
      if (a * b * c === a + b + c) output.push("" + a + b + c)
    }
  }
}

console.log(output)