【发布时间】:2021-02-12 04:01:37
【问题描述】:
这个问题基本上是说迭代一个整数,并评估该数字是否可以被它的左侧数字整除,如果它是可整除的,则返回一个布尔数组。
73312
- 第一个数字没有左边的数字,所以它是假的。
- 下一个是 3/7,计算结果为 false,依此类推。
我运行了测试,一切都很好,但是对于这个数字 (73312),它在应该返回 false 时返回 true。
预期输出[false,false,true,false,true]
实际输出[false,false,true,true,true]
function divisibleByLeft(n) {
let flag = false;
const ansArr = [];
const s = JSON.stringify(n);
const arr = [];
for (let i = 0; i < s.length; i++) {
arr.push(parseInt(s[i]));
};
for (let i = 0; i < arr.length; i++) {
let reminder = arr[i] % arr[i - 1];
if (reminder !== 0) {
ansArr.push(flag);
} else {
flag = true;
ansArr.push(flag);
};
};
return ansArr;
};
console.log(divisibleByLeft(73312));
【问题讨论】:
-
一旦你设置了
flag = true,你就永远不会把它设置回false -
从技术上讲,在 JavaScript 中,它是 remainder operator,而不是模数/模数。
标签: javascript modulo