思路:
在输入的时候就判断移动之后每个元素的位置,直接输入到指定位置之后输出。
位置变换对应关系:
初始 变化后
0 N-M
1 N-M+1
2 N-M+2
...
...
M-1 N-1
-----------------------
M 0
M+1 1
...
...
N-1 N-M-1
注意点
1:
由于并没有说明M<N,故应该确定其真实移动位数(N次一个循环)
2:注意中英文括号(编程时括号使用的中文,一开始没检查出来,花了好长时间),报错形式如下
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin >> n >> m;
int a[n];
m %= n;
for (int i = m; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < m; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
cout << a[i];
if (i != n - 1)
cout << " ";
}
return 0;
}