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(" ");
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章