题目要求:
本题函数的思路
(1)在函数中新创建一个数组b[],先将原数组中的所有元素储存在数组b[]中,目的是为了防止如果直接在数组a[]上进行更改,还未进行操作的值会被已进行操作的值覆盖。
(2)巧妙利用取余可以将一部分连续的数在某一范围内循环。(使数组的下标一直在某一范围的数中变化)
例如:假设n(数组长度)为5;m(移动位数)为2;i为原数组下标,j为移动后的数组下标,其取值范围都为0,1,2,3,4。
i=0时,j=i+m=0+2=2 i=1时,j=i+m=1+2=3 i=2时,j=i+m=2+2=4
i=3时,j=i+m=3+2=5(越界),所以此时j=(i+m)%n=5%5=0
i=4时,j=i+m=4+2=6(越界),所以此时j=(i+m)%n=6%5=1
所以有以下代码: