输入格式:
每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。
输出格式:
在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。
输入样例:
6 2
1 2 3 4 5 6
输出样例:
5 6 1 2 3 4
#include <iostream>
using namespace std;
int main()
{
int N, M, temp;
cin >> N >> M;
int array[100] = { 0 };
int i,j;
//逐个读入数组内的数
for (i = 0; i < N; i++) {
cin >> array[i];
}
//先写一个内层循环,让数组右移一位,再写外层循环,让其重复移动
for (j = 0; j < M; j++) {
temp = array[N - 1]; //别忘了重新为temp赋值,否则,其会变为0
for (i = N - 2; i >= 0; i--) { //从倒数第二个开始,将数组内所有的数,除了最后一个,都往右移一位;
array[i + 1] = array[i]; //之所以用array[i+1]=array[i],而不是 array[i]=array[i-1],是因为这样会遗漏最后一位数
}
array[0] = temp; //不能遗漏第一位数,每次循环都要重新加入
}
for (i = 0; i < N; i++) {
cout << array[i];
if (i < N - 1) {
cout << " "; //注意题目要求是“除了最后一个数以外”都要输出空格到数字后面
}
}
return 0;
}