1008 数组元素循环右移问题 **
Posted qrain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1008 数组元素循环右移问题 **相关的知识,希望对你有一定的参考价值。
#include <iostream> #include <cmath> using namespace std; int main() { int n,m; cin>>n>>m; int num[101]; for(int i=0;i<n;i++) cin>>num[i]; m = m%n; int count = 0; for(int i=n-m;i<n;i++) { cout<<num[i]; count++; if(count==n) cout<<endl; else cout<<" "; } for(int i=0;i<n-m;i++) { cout<<num[i]; count++; if(count==n) cout<<endl; else cout<<" "; } return 0; }
直接改变输出顺序。
#include <stdio.h> void reverse(int a[], int start, int end){ for(int i=start; i<=(start+end)/2; i++){ int tmp = a[i]; a[i] = a[start+end-i]; a[start+end-i] = tmp; } } int main(){ int n, m; scanf("%d %d", &n, &m); m %= n; int a[n]; for(int i=0; i<n; i++){ scanf("%d", &a[i]); } reverse(a, 0, n-m-1); reverse(a, n-m, n-1); reverse(a, 0, n-1); printf("%d", a[0]); for(int i=1; i<n; i++){ printf(" %d", a[i]); } printf(" "); return 0; }
严格的反转。
以上是关于1008 数组元素循环右移问题 **的主要内容,如果未能解决你的问题,请参考以下文章