Нужно неизвестное число 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));

→ Ссылка