我是靠谱客的博主 沉静萝莉,这篇文章主要介绍C++实现1008 数组元素循环右移问题,现在分享给大家,希望可以做个参考。

只是为了输出结果,可以强行cout

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream> using namespace std; int main() { int N,M; cin>>N>>M; M %= N; int vec[N]; for(int i = 0;i < N;i++) { cin>>vec[i]; } for(int j = N - M;j < N;j++) cout<<vec[j]<<" "; for(int j = 0;j < N - M - 1;j++) cout<<vec[j]<<" "; cout<<vec[N - M - 1]; return 0; }

不行,得正规一点,得写出点逻辑:

//注意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
29
#include<iostream> using namespace std; void reverse(int vec[], int start, int end){ for(int i=start; i<=(start+end)/2; i++){ int tmp = vec[i]; vec[i] = vec[start+end-i]; vec[start+end-i] = tmp; } } int main() { int N,M; cin>>N>>M; M %= N; int vec[N]; for(int i = 0;i < N;i++) { cin>>vec[i]; } reverse(vec, 0, N-M-1); reverse(vec, N-M, N-1); reverse(vec, 0, N-1); for(int i = 0; i < N - 1; i++) { cout<<vec[i]<<" "; } cout<<vec[N - 1]; return 0; }

最后

以上就是沉静萝莉最近收集整理的关于C++实现1008 数组元素循环右移问题的全部内容,更多相关C++实现1008内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部