PAT 1008 array element loop right shift problem
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
1#include <iostream>2 using namespacestd;3 intMain () {4 intn,dist;5Cin>>n>>Dist;6 intnum[n+1];7 for(intI=1; i<=n;i++)8Cin>>Num[i];9 inttemp1,temp,s=1; Tentemp1=Num[s]; One for(intI=1; i<=n;i++){ A intn= (dist+s)%N; - if(n==0) n=N; -temp=Num[n]; thenum[n]=Temp1; -s=N; -temp1=temp; - if(s==1) { +s=2; temp1=Num[s]; - } + } A intflag=0; at for(intI=1; i<=n;i++) - if(flag++==0) -cout<<Num[i]; - Elsecout<<" "<<Num[i]; -}
View Code
PAT 1008 array elements loop right shift problem