1008. Loop right shift of array elements (20)
An array A contains N (n>0) integers, and each integer loop is shifted to the right by the M (m>=0) position, and the data from a (a0a1 ...) is removed by the use of a different array. AN-1) transform to (an-m ... AN-1 A0 A1 ... AN-M-1) (the last m-number loop moves to the first m-position). If you need to consider the number of times a program moves data, how do you design a moving method?
input Format: Each input contains a test case, line 1th input n (1<=n<=100), M (m>=0), and line 2nd enter n integers, separated by a space.
output format: the sequence of integers after the output loop is shifted to the right of the M-bit in a row, separated by a space, with no extra spaces at the end of the sequence.
Input Sample:
6 21 2 3 4 5 6
Sample output:
5 6 1 2 3 4
Solution one: Regardless of the subject conditions of the other open array
#include <iostream>#include<iomanip>#include<math.h>#include<stdio.h>#include<string>#include<cstring>#include<cstdio>#include<algorithm>#include<vector>using namespacestd;intMain () {inta[ Max]; intN, M; CIN>> N >>m; M= m%N; for(inti =0; I < n; i++) {cin>>A[i]; } intCNT =0; for(inti = n-m; I < n; i++) {cout<<A[i]; CNT++; if(CNT < n) cout <<" "; } for(inti =0; i < n-m; i++) {cout<<A[i]; CNT++; if(CNT < n) cout <<" "; } System ("Pause"); return 0;}
1008. Loop right shift of array elements (20)