题目有个小技巧,首先m比n大了,那我可以直接把比n多出来的部分删掉。啊这个意思,就是假设n为6 m为6,那相当于没有移动对不对。 n为8, m为10,那相当于一个n为8m为8+n为8,m为2,因为前者相当于没移动,所以直接移动2就好了。
#include<stdio.h>
main(){
int n,m;
int test[105],final[105];
int i;
scanf("%d%d",&n,&m);
m = m%n;
for(i=1;i<=n;i++){
scanf("%d",&test[i]);
}
for(i=1;i<=n;i++){
if((i+m)>n){
final[i+m-n]=test[i];
}else{
final[i+m]=test[i];
}
}
for(i=1;i<n;i++){
printf("%d ",final[i]);
}
printf("%d",final[i]);
return 0;
}