📌  相关文章
📜  day 10 二进制数hackerrank解决方案javascript(1)

📅  最后修改于: 2023-12-03 15:30:23.106000             🧑  作者: Mango

Day 10: Binary Numbers Hackerrank 解决方案(Javascript)

介绍

本文将介绍 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,重置计数器
  }
}

我们首先将数字转换为二进制字符串,并初始化两个计数器 maxCountcount。然后我们遍历二进制字符串,对于每个字符,当其为 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 语言来解决该问题,并针对每个步骤给出了详细的代码实现。

如果您对该问题有任何疑问或建议,请在下方留言区留言。