Вычислить число из числа приращения цикла - PullRequest
0 голосов
/ 07 ноября 2018
+---+---+---+
| 1 | 0 | 0 |
+---+---+---+
| 2 | 1 | 0 |
+---+---+---+
| 3 | 2 | 0 |
+---+---+---+
| 4 | 0 | 1 |
+---+---+---+
| 5 | 1 | 1 |
+---+---+---+
| 6 | 2 | 1 |
+---+---+---+
| 7 | 0 | 2 |
+---+---+---+
| 8 | 1 | 2 |
+---+---+---+
| 9 | 2 | 2 |
+---+---+---+

код, который я пытаюсь

var loop = 1;
while(loop < 10) {
    console.log(loop, loop%3, "I can't calculate this")
    loop++;
}

У меня есть переменная приращения цикла loop и она насчитывает 1,2,3,4,5 ....

Мне нужно вычислить 2 числа из инкрементной переменной: один округляет 0,1,2 (loop % 3) Я могу сделать это, но другие 0,0,0 или 1,1,1

Я имею в виду, мне нужно держать число в соответствии с моим круглым номером.

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Используйте фрагмент кода ниже:

var loop = 1;
var round = 3;
while(loop < 10) {
    console.log(loop, (loop-1)%round, Math.floor((loop-1)/round));
    loop++;
}

Так просто

0 голосов
/ 07 ноября 2018

На самом деле у вас есть потребность получить число в другой десятичной системе, здесь вы хотите получить число к основанию из трех с небольшим усложнением начального значения на основе одного, где число обычно начинается с нуля и обратный результат путем взятия нижних индикаторов слева и более высокого индикатора справа.

Теперь вы получаете прямое преобразование.

var i;

for (i = 0; i < 9; i++) {
    console.log(i, i.toString(3).padStart(2, '0'));
}

А теперь смещенный результат, добавив единицу к выводу и изменив результат на обратный.

var i;

for (i = 0; i < 9; i++) {
    console.log(i + 1, Array.from(i.toString(3).padStart(2, '0')).reverse().join(''));
}
0 голосов
/ 07 ноября 2018

Исправлен ваш код ((loop-1)%3), и вам просто нужно деление с округлением вниз:

var loop = 1;
while(loop < 10) {
    console.log(loop, (loop-1)%3, Math.floor((loop-1)/3))
    loop++;
}

Некоторые другие языки поддерживают «целочисленное деление», где Math.floor не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...