解析:這道題一拿到手,就理解錯了,有坑點, M = M % num;// 這句話很重要,可以修正M>N或者N=0的情況,因爲序列移動N位後還是原序列,沒有這句話會有兩個例子不過。思路就是先計算出溢出的個數,再輸出5,6的下標,然後再計算左移卻沒溢出的個數,在輸出1234的下標。
public class Pta_1008 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();//位數
int M = scanner.nextInt();//右移數
int[] arr = new int[num];
M = M % num;// 這句話很重要,可以修正M>N,n=0的情況,因爲序列移動N位後還是原序列,沒有這句話會有兩個例子不過
System.out.println(M);
//自定義數的輸入
for (int i = 0; i < num; i++) {
arr[i] = scanner.nextInt();
}
//冒出的數
for (int i = M; i > 0; i--) {
System.out.print(arr[num - i] + " ");
}
//右移的數
for (int i = M; i < arr.length; i++) {
System.out.print(arr[i - M]);
if (i != arr.length - 1) { //控制空格輸出
System.out.print(" ");
}
}
}
}