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
Analysis: The actual need not move, as long as divided into two parts output.
1#include <stdio.h>2 intMain ()3 {4 intnum[ -]={0};5 6 intn=0, m=0;7scanf"%d%d",&n,&m);8 9m%=N;Ten for(intI=0; i<n;i++) Onescanf"%d",&num[i]); A - intk=0; - for(inti=n-m;i<n;i++) the { - if(k) -printf" "); - Elsek++; +printf"%d", Num[i]); - } + for(intI=0; i<n-m;i++) A { at if(k) -printf" "); - Elsek++; -printf"%d", Num[i]); - } - return 0; in}
PAT (Basic level) practise (Chinese)-1008. array element loop right shift problem (20)