如何在数组上执行环绕遍历?

时间:2015-07-06 23:52:40

标签: c++ c arrays algorithm

我想要做的是从数组的每个3^j元素遍历到数组的j位置。

我有一个6个大小的数组,int arr[6]。现在,让我们说在迭代i=1i=6,我想访问数组中的3^j个地方,j>=0j<=6。对于arr[0],它将从arr[1]...arr[3]....arr[6]访问。

然后,在arr[1]的下一次迭代中,它将从中转到 arr[2]...arr[4]...arr[1].....

然后,让我们说arr[4],它应该像这样 arr[5]....arr[1]....arr[4].

1 个答案:

答案 0 :(得分:1)

模运算符:

int arr[6];
...
int index = 1;
for(int cnt = 0; cnt < 6; cnt++) // 6 times
{
    cout << arr[index - 1] << endl; // -1 because it´s 0-5 instead of 1-6
    index = (index - 1) % 6 + 1;
}