【发布时间】:2022-01-16 08:55:31
【问题描述】:
- 在这个问题中,我必须在整数的二进制表示中找到最长的零序列。
- 经过大量努力,我能够用我多次更改的逻辑找到最长的零序列。
- 我的逻辑有一个问题,如果我输入一个没有间隙的整数,我必须给我一个答案 0,我试图自己做出但我失败了。
- 现在,如果我输入一个没有间隙的整数,它会给我输出无穷大。
- 当整数的二进制表示中没有间隙时,我希望我的答案打印 0。
var dn = prompt("Enter a number: ");
var bn = new Array();
var i = 0;
var binary = [];
while (dn != 0) {
bn[i] = dn % 2;
dn = Math.floor(dn / 2);
i++;
}
for (var j = i - 1; j >= 0; j--) {
binary.push(bn[j]);
}
console.log(binary.join(""));
var currentGap = 0;
var gaps = [];
var len = binary.length;
for (var k = 0; k < len; k++) {
if (binary[k] == 0) {
currentGap++;
if (binary[k + 1] == 1) {
gaps.push(currentGap);
currentGap = 0;
}
}
}
console.log(Math.max(...gaps));
【问题讨论】:
-
那么
if (gaps.length) console.log(Math.max(...gaps)) else console.log(0)?
标签: javascript binary