题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
代码:
import java.util.Scanner;
/**
* 移位
* @author cheng
*
*/
public class ThirtySix {
public void move(int n,int m){
int[] array=new int[n];
int[] x=new int[n];
for(int i=0;i<n;i++){
array[i]=(int)(Math.random()*100);
x[i]=array[i];
}
System.out.println("右移前:");
for(int i=0;i<n;i++){
System.out.print(x[i]+" ");
}
System.out.println();
for(int i=0;i<n;i++){
int temp=(i+m)%n;
x[temp]=array[i];
}
System.out.println("右移后:");
for(int i=0;i<n;i++){
System.out.print(x[i]+" ");
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("有多少个整数?");
int n=scanner.nextInt();
System.out.print("右移几位?");
int m=scanner.nextInt();
ThirtySix thirtySix=new ThirtySix();
thirtySix.move(n, m);
scanner.close();
}
}
输出结果:
有多少个整数?5
右移几位?2
右移前:
48 44 76 60 3
右移后:
60 3 48 44 76