审题,分别反转前面部分,后面部分,整体。
m可能大于n,所以 m%=n一定要加。
除此之外还可以直接改输出顺序这里就没写
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28#include<iostream> using namespace std; void re(int a[],int b,int c){ for(int i=b;i<=(b+c)/2;i++){ int temp=a[i]; a[i]=a[b+c-i]; a[b+c-i]=temp; } } int main(){ int n,m; int i; cin>>n>>m; m%=n; int a[500]; for(i=0;i<n;i++){ cin>>a[i]; }//i=6 re(a,0,n-m-1); re(a,n-m,n-1); re(a, 0, n-1); cout<<a[0]; for(int i=1;i<n;i++)cout<<' '<<a[i]; cout<<endl; return 0; }
最后
以上就是眯眯眼酒窝最近收集整理的关于PAT——乙级1008 数组元素循环右移的全部内容,更多相关PAT——乙级1008内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复