Нужно неизвестное число n перевести в двоичную систему в JS
Нужно неизвестное число n перевести в двоичную систему, используя только циклы
function testCycle(n) { //задается число n
x = '';
for(i = n; i > 0; i = i / 2) { //пока n не будет равна 0, будет делиться на два
x = (i % 2) + ''; //получаем остаток и прибавляем
Math.trunc(i); // округлить
}
return x; // вывод
}
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
Проблема в двух строках:
x = (i % 2) + ''; //получаем остаток и прибавляем
Math.trunc(i); // округлить
На каждой итерации переменная x перезаписывается. Вместо '' нужно было использовать саму переменную x, тогда и описание бы оказалось верным
x = (i % 2) + x; //получаем остаток и прибавляем к `x`
Строчка с округлением бесполезна, так как результат округления никуда не присваивается.
Вместо этого места, округление (отбрасывание дробной части) нужно было производить в третьей секции for где описывается следующее значение i
i = Math.trunc(i / 2)
В итоге можно получить следующее:
function testCycle(n) {
x = '';
for (i = n; i > 0; i = Math.trunc(i / 2)) {
x = (i % 2) + x;
}
return x;
}
console.log(testCycle(7));
console.log(testCycle(12));
console.log(testCycle(22));