思路:
比如输入了 1 2 3 4 5 6,要右移两位,则翻转后两位变成 1 2 3 4 6 5 再反转前四位 4 3 2 1 6 5,在整体翻转 5 6 1 2 3 4实现数组右移操作;当然也可以直接输出
注意 :这里有个问题就是数据里有m>n的情况,所以我们要令m对n取余,才可以取得满分
AC代码1
#include<iostream>
#include<algorithm>
using namespace std;
int a[120];
int main()
{
int n,m;
cin>>n>>m;
m=m%n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=n-m;i<n;i++) cout<<a[i]<<" ";
for(int i=0;i<n-m-1;i++) cout<<a[i]<<" ";
cout<<a[n-m-1]<<endl;
return 0;
}
AC代码2
#include<iostream>
#include<algorithm>
using namespace std;
int a[110];
int n,m;
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>a[i];
m=m%n;
reverse(a+n-m,a+n);
reverse(a,a+n-m);
reverse(a,a+n);
for(int i=0;i<n;i++)
{
if(i==0)
cout<<a[i];
else
cout<<" "<<a[i];
}
return 0;
}