第一个数组长度n,循环右移m位
思路:java里面有个List集合,超级方便,可以直接加
step1:遍历数组,下标从n-m,到n-1,逐个添加进ArrayList集合 list里面。
step2:遍历数组,下标从0到n-m-1,逐个添加进ArrayList集合 list里面。
step3:输出list集合里面的元素即可。
注意事项:m可能比n大,就可能会存第一行输入6 8的情况,6 8的情况其实和6 2的结果一样,都是输出5 6 1 2 3 4。
所以遍历的时候m=m%n,即可。
代码如下:
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws Exception{
Scanner sc=new Scanner(System.in);
String s=sc.nextLine(); //读入第一行数据,并将其转换成整型数组b
String sting[]=s.split(" ");
int b[]=new int[sting.length];
for(int i=0;i<sting.length;i++){
b[i]=Integer.parseInt(sting[i]);
}
int n=b[0];
int m=b[1]%b[0];
String str=sc.nextLine(); //输入1 2 3 4 5 6
String str1[]=str.split(" ");
List list=new ArrayList();
for(int i=str1.length-m;i<str1.length;i++){
list.add(str1[i]);
}
for(int i=0;i<n-m;i++){
list.add(str1[i]);
}
//输出
for(int j=0;j<list.size()-1;j++){
System.out.print(list.get(j)+" ");
}
System.out.print(list.get(list.size()-1));
}
}
运行结果: