【PAT-1008】 数组元素循环右移问题 (20分)(c++)
注意点:
-
对输入长度与移动位置进行修正
-
为了方便我的操作:右移2 等价于 左移4。这样只是方便了我!!!不是优化后的!
#include<iostream>
using namespace std;
#include<vector>
void test01()
{
vector<int> arr;
vector<int> arr_new;
int len, n = 0;
cin >> len;
cin >> n;
n = n % len;
//获取数据
for (int i = 0; i < len; i++) {
int num = 0;
cin >> num;
arr.push_back(num);
}
//处理数据
for (int i = 0; i < len; i++)
{
int temp = 0;
int a = 0;
int b = 0;
int c = 0;
//右移2 等价于 左移4
a = len - n;
b = i + a;
c = b % len;
temp = arr[c];
//存放到新的数组中
arr_new.push_back(temp);
cout << arr_new[i];
if (i < len - 1) {
cout << " ";
}
}
}
int main()
{
test01();
return 0;
}