📅  最后修改于: 2023-12-03 15:30:23.106000             🧑  作者: Mango
本文将介绍 Hackerrank 的 Day 10: Binary Numbers 问题的解决方案。这是一个关于二进制数字的问题,需要我们找出一个数字的二进制形式中连续的 1 的个数。
我们将使用 Javascript 语言来解决这个问题。
首先我们需要获取输入的数字。在 Hackerrank 的编程环境中,可以使用 readLine()
方法来获取用户输入。我们可以将获取到的字符串转换为数字类型,代码如下:
const n = parseInt(readLine());
接下来,我们需要将数字转换为二进制,并计算其中连续的 1 的个数。我们可以使用以下代码来实现此功能:
let binary = n.toString(2); // 将数字转换为二进制
let maxCount = 0; // 用于记录最大连续 1 的个数
let count = 0; // 用于记录当前连续 1 的个数
// 遍历二进制字符串,计算连续 1 的个数
for (let i = 0; i < binary.length; i++) {
if (binary[i] == '1') {
count++; // 找到一个 1,将计数器加 1
maxCount = Math.max(maxCount, count); // 更新最大连续 1 的个数
} else {
count = 0; // 遇到 0,重置计数器
}
}
我们首先将数字转换为二进制字符串,并初始化两个计数器 maxCount
和 count
。然后我们遍历二进制字符串,对于每个字符,当其为 1 时,我们将 count
计数器加 1,并更新 maxCount
。当遇到 0 时,我们重置计数器。
最后,我们可以使用以下代码来将结果输出:
console.log(maxCount);
这样,我们就完成了该问题的解决方案。
完整代码如下所示:
function main() {
const n = parseInt(readLine());
let binary = n.toString(2);
let maxCount = 0;
let count = 0;
for (let i = 0; i < binary.length; i++) {
if (binary[i] == '1') {
count++;
maxCount = Math.max(maxCount, count);
} else {
count = 0;
}
}
console.log(maxCount);
}
本文介绍了 Hackerrank 的 Day 10: Binary Numbers 问题的解决方案。我们使用了 Javascript 语言来解决该问题,并针对每个步骤给出了详细的代码实现。
如果您对该问题有任何疑问或建议,请在下方留言区留言。