【PAT】B1008 數組元素循環右移問題
阿新 • • 發佈:2018-10-19
() ios oid 技術分享 數組元素 組元 tor src 循環右移
- 猥瑣方法
直接分成兩部分輸出數組元素,註意空格的問題
#include<stdio.h> int arr[101]; void Priarr(int a,int b){ if(a<=b) for(int i=a;i<=b;i++){ if(i!=a)printf(" "); printf("%d",arr[i]); } } int main(){ int N,M; scanf("%d%d",&N,&M); M%=N;//化簡移動次數 for(int i=1;i<=N;i++){//從1開始存儲 scanf("%d",&arr[i]); } Priarr(N-M+1,N); if(N-M+1<N)printf(" "); Priarr(1,N-M); return 0; }
- 光明正大的標準解法
整體逆置,兩部分分別逆置
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { int N, M; cin >> N >> M; int a[N]; for (int i = 0; i < N; i++) scanf("%d",&a[i]); M %= N; if (M != 0) { reverse(a, a+N); reverse(a, a+M); reverse(a+M, a+N); } for (int i = 0; i < N - 1; i++) printf("%d ",a[i]); printf("%d",a[N-1]); return 0; }
【PAT】B1008 數組元素循環右移問題