问题描述
输入格式:
每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。
输出格式:
在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。
输入样例:
6 2
1 2 3 4 5 6
输出样例:
5 6 1 2 3 4
思路分析
需要注意到 m 可能比 n 大,因此要对 m 进行取模操作。
实现代码
#include<iostream>
using namespace std;
int main() {
int n;
int m;
cin >> n;
cin >> m;
m = m % n;
cin.get();
int count1 = 0;
int count2 = 0;
int* p = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
if (count1 != n - m) {
cin >> *(p + m + i);
count1++;
}
else {
cin >> *(p + count2++);
}
}
for (int i = 0; i < n - 1; i++) {
cout << *(p + i) << " ";
}
cout << *(p + n - 1);
free(p);
return 0;
}