1. 程式人生 > 其它 >Java 有n個整數,使其前面各數順序向後移 m 個位置,最後m個數變成最前面的m個數

Java 有n個整數,使其前面各數順序向後移 m 個位置,最後m個數變成最前面的m個數

技術標籤:java開發java經驗分享

Java 有n個整數,使其前面各數順序向後移 m 個位置,最後m個數變成最前面的m個數

用陣列來存放這n個整數,但由於陣列建立後大小是固定的,移動不了,因此一般選擇新建一個數組來存放目標陣列。
通過舉例測驗,發現了它的規律:

順序後移之後的新陣列由兩部分組成,前一部分是原陣列的  (n-m)~n 的元素,
                             後一部分是原陣列的  0~(n-m) 的元素
import java.util.*;
public class Test {
	public static void main(String [
] args){ System.out.print("請輸入整數個數n:"); Scanner scan = new Scanner(System.in); int n=scan.nextInt(); int array[]= new int [n]; int arr[]=new int[array.length]; for(int i=0;i<n;i++) { array[i]=(int)(Math.random()*100); //隨機生成一個由n個整陣列成的一維陣列 System.out.print(
array[i]+" "); } System.out.println(); System.out.print("前面各數順序後移m: "); int m=scan.nextInt(); int a=0; for(int i=n-m;i<n;i++) {//先把(n-m)~n的元素複製到新數組裡 arr[a]=array[i]; // arr[i]=array[(i+m)%n];//錯誤規律,不普遍適用 a++; } for(int i=0;i<
n-m;i++) {//再把0~(n-m)的元素複製到新數組裡 arr[a]=array[i]; a++; } for(int i=0;i<n;i++) { System.out.print(arr[i]+" "); } } }

執行結果:
在這裡插入圖片描述

java學習ing.jpg