我想将for循环更改为块方案
我有这个for循环,这样做: 比方说n = 8 和node = 4
n:[1] [2] [3] [4] [5] [6] [7] [8]
id:0 1 2 3 0 1 2 3
id = 0;
while (id < node){
for (i = id + 1; i <= n; i = i + node)
{
//do stuff here
id = i;
}enter code here
id+1;
}//end while
我想要它这样做:
n = 8 node = 4
n:[1] [2] [3] [4] [5] [6] [7] [8]
id:0 0 1 1 2 2 3 3
n = 16 node = 4
n:[1] [2] [3] [4] [5] [6] [7] [8] ...... [13] [14] [15] [16]
id:0 0 0 0 1 1 1 1 ... 3 3 3 3
n = 8 node = 2
n:[1] [2] [3] [4] [5] [6] [7] [8]
id:0 0 0 0 1 1 1 1
其中每个id分配给示例中的前n个节目
我有这个,但它只适用于特定场景n = 8&amp; node = 4
...
b = id + 1
for (i = n-(n-(id+b)); i <= (n-(n-(id+b))+1); i+= 1)
...
答案 0 :(得分:0)
试试这段代码:
int node = 4;
int n = 16;
for (id = 0; id < node; id++) {
for(int j = 0; j < n / node; j++) {
//do some stuff
}
}
或者您可以使用此代码:
int node = 4;
int n = 16;
for (int i = 0; i < node; i++) {
id = i;
for(int j = 0; j < n / node; j++) {
//do some stuff
}
}
他们也这样做。
答案 1 :(得分:0)
我可能误解了你的问题但是这给出了你所描述的id的输出:
for (int i = 0; i < n; i++)
{
id = i / (n / node);
// do stuff
}
我从0开始使用n,但是如果从1开始,只需通过将所有内容设置为n-1来调整计算。