定义了一个b数组为答案数组,先存储因为前面的数后移而要到前面去的数,这些数有m%n个,所以在输入n,m后有一个坑点就是不保证n>m,如果没有m%=n这一句,第二第三个点会WA,然后在将a数组的数从b[k]开始导入进b数组
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
m%=n;
int a[n],b[n];
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<m;i++)
{
b[i]=a[n-m+i];
}
//for(int j=0;j<m;j++) cout<<b[j]<<' ';
int k=0;
for(int i=m;i<n;i++)
{
b[i]=a[k];
k++;
}
for(int i=0;i<n-1;i++) cout<<b[i]<<' ';
cout<<b[n-1];
return 0;
}