题目:有n个整数的数组,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

mac2026-03-20  2

【代码】

版本一】定义一个新数组,数组长度是移动的位数,先将原数组后面的移动到新数组中,再将原数组需要后移的移动到原数组的后面,再将新数组中存放的后面的移动到原数组的前面

import java.util.Scanner; class MoveArray { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入要移动的位数:"); int move = sc.nextInt(); System.out.println("请输入数组的长度:"); int length = sc.nextInt(); int[] arr = new int[length]; System.out.println("请输入数组的各元素:"); for(int i=0;i<length;i++){ arr[i] = sc.nextInt(); } System.out.println("移动前数组:"); for(int i=0;i<length;i++){ System.out.print(arr[i]+" "); } int[] b = new int[move]; for(int i=0;i<move;i++){ b[i]=arr[length-move+i]; } for(int i=length-move-1;i>=0;i--){ arr[i+move]=arr[i]; } for(int i=0;i<move;i++){ arr[i]=b[i]; } System.out.println("移动后数组:"); for(int i=0;i<length;i++){ System.out.print(arr[i]+" "); } } }

版本二】:设置的新数组和原来数组长度一样,先将原来数组的后面移动到新数组的前面,再将原来数组前面的移动到新数组的后面

import java.util.Scanner; class Move { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入要移动的位数:"); int move = sc.nextInt(); System.out.println("请输入数组的长度:"); int length = sc.nextInt(); int[] arr = new int[length]; System.out.println("请输入数组的各元素:"); for(int i=0;i<length;i++){ arr[i] = sc.nextInt(); } System.out.println("移动前数组:"); for(int i=0;i<length;i++){ System.out.print(arr[i]+" "); } int[] b = new int[length]; for(int i=0;i<move;i++){ b[i]=arr[length-move+i]; } for(int i=0;i<length-move;i++){ b[i+move]=arr[i]; } System.out.println("移动后数组:"); for(int i=0;i<length;i++){ System.out.print(b[i]+" "); } } }

【运行结果】

最新回复(0)