I know this is very silly question, but I am struggling to find this logic. I am trying to work on this very basic for loop to achieve this result
0 - 0
0 - 1
0 - 2
0 - 3
0 - 4
0 - 5
0 - 6
0 - 7
0 - 8
0 - 9
0 - 10
0 - 11
1 - 12
1 - 13
1 - 14
1 - 15
1 - 16
1 - 17
1 - 18
1 - 19
1 - 20
1 - 21
1 - 22
1 - 23
2 - 24
2 - 25
2 - 26
2 - 27
2 - 28
2 - 29
2 - 30
2 - 31
2 - 32
2 - 33
2 - 34
2 - 35
The inner loop should continue from the number where the first inner loop was cut done.
in the first iteration it left off at 11
, the second time it comes to the inner loop it should go from 12 - 24
and so forth.
var count = 0;
var val = 0;
for(i = 0; i < 3; i++) {
for(j = 0; j < count + 12; j++) {
console.log(i + " - " + j);
}
val = j;
count = count + j;
console.log(count);
}
There are several "clever" answers here. I'd stick with a "simple to read and simple to debug" answer. Here's a solution in C# that should be simple enough to translate:
int k = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 12; j++)
{
Console.WriteLine(i + " - " + k++);
}
Console.WriteLine();
}
Organizational Skills Beat Algorithmic Wizardry
You don't need 2 loops, you can achieve this with a single loop:
for (var i = 0; i < 36; i++){
console.log(Math.floor(i/12) + " - " + i);
}
If you don't like Math.floor, you can use the double bitwise not operator to truncate the float:
for (var i = 0; i < 36; i++){
console.log(~~(i/12) + " - " + i);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With