第一种解法
#include<cstdio>
int main(){
int m,n,a[110];
scanf("%d%d",&m,&n);
n%=m;
for(int i=n;i<m;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<m-1;i++){
printf("%d ",a[i]);
}
printf("%d",a[m-1]);
return 0;
}
第二种
#include <cstdio>
int main(){
int n,m,a[110];
scanf("%d%d",&n,&m);
m%=n;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=n-m;i<n;i++){
printf("%d ",a[i]);
}
for (int i = 0; i < n-m; ++i) {
printf("%d",a[i]);
if(i!=n-m-1) printf(" ");
}
return 0;
}
基本原理都一样 这题不难
本文介绍了解决数组旋转问题的两种C++代码实现方式。第一种通过两次输入和一次输出实现数组元素的旋转,而第二种则在一次输入后直接进行输出。两者的基本原理相似,都是将数组分为两部分进行处理。
1157

被折叠的 条评论
为什么被折叠?



