When I wrote it completely did not think how to reduce the number of moves, from the internet to find a completely didn't think of the method of trickery, and did not think of the way to reduce the number of moves.
The trickery does not move with the array and outputs directly;
Displacement is 1234 the first tail 22 transposition into 4321, 56 to 65, and then 43,216,522 transposition is exactly 561234, how did this come to mind?
Another point is that if the array length is 5, the displacement is 6, then the result of displacement 1 is the same, so the number of bits shifted with the array length%
Code:
Topic:
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
1008. Array element loop Right shift question (a) Java