从循环增量编号计算编号

时间:2018-11-07 15:54:20

标签: javascript math

+---+---+---+
| 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 :(得分:2)

修正代码((loop-1)%3),然后只需要四舍五入为除法即可:

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

某些其他语言支持“整数除法”,因此不需要Math.floor

答案 1 :(得分:2)

使用以下代码段:

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

太简单了

答案 2 :(得分:0)

实际上,您需要在不同的十进制系统中获取数字,在这里,您希望将数字以3为基数,并以一个以1为基础的起始值稍加复杂,该数字通常以零开始,而a取相反的结果,方法是将左下方的指示器和右上方的指示器置于

现在您将获得直接转换。

var i;

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

现在通过将结果加1并反转结果来移位结果。

var i;

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