编程题目:
37.有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
示例代码:
package program.calculation.exercise37;
import java.util.Scanner;
/**
* 37.有n个整数,使其前面各数顺序向后移m个位置, 最后m个数变成最前面的m个数。
*/
public class ArrayMove {
public static void main(String[] args) {
System.out.println("请输入n个整数:");
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
for (int i=0; i<arr.length; i++) {
arr[i] = scanner.nextInt();
}
System.out.println("请输入整数顺序后移位数m(m<n):");
int m = scanner.nextInt();
handleArray(arr, m);
System.out.println("整数序列后移"+m+"位后顺序为:");
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
//处理数组
private static void handleArray(int[] arr, int m) {
int[] array = new int[m];
for(int i=0; i<m; i++) {
array[i] = arr[arr.length-m+i];
}
for(int i=arr.length-m-1; i>=0; i--) {
arr[i+m] = arr[i];
}
for(int i=0; i<m; i++) {
arr[i] = array[i];
}
}
}