题目描述
参考代码
#include <iostream>
using namespace std;
int main()
{
int N, M;
int arr[100];
cin >> N >> M;
for(int i=0;i<N;++i)
cin >> arr[(i+M)%N];
cout << arr[0];
if(N>1)
for(int i=1;i<N;++i)
cout << " " << arr[i];
return 0;
}
解题思路
看到这个题目一开始我首先想到用数组解决,但是尝试之后发现处理各种条件比较麻烦,这个解法的思路还是很好理解的,就是在输入的时候就用取余的方法,当前数组元素的位置加上移动的距离数与数组元素的总个数取余,这正好可以实现数组的移动。