解析:这道题一拿到手,就理解错了,有坑点, 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(" ");
}
}
}
}