Почему этот код не принимается тестом hackerrank, который ожидает 3 в качестве результата, тогда как преобразование числа 439 в двоичную строку приводит в результате 2.
Задача: https://www.hackerrank.com/challenges/30-binary-numbers/problem?isFullScreen=true
Мой код (сбой в тестовом примере 2 -> input = 439):
function main() { const n = parseInt(readLine(), 10); const nBinary = n.toString(2); const nBinarySplit = nBinary.split(""); let count = 0; for (let i = 0; i < nBinarySplit.length; i++) { if (nBinarySplit[i] === '1') { count++; } else { break; } } console.log(count); }
Небольшое решение:
function main() { const n = parseInt(readLine(), 10); const nBinary = n.toString(2); const nBinarySplit = nBinary.split("0"); let result = nBinarySplit.reduce((r,s) => r > s.length ? r : s.length, 0); console.log(result); }