PTA 1008 數組元素循環右移問題(詳解——代碼)

在這裏插入圖片描述
解析:這道題一拿到手,就理解錯了,有坑點, 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(" ");
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章