Java 有n個整數,使其前面各數順序向後移 m 個位置,最後m個數變成最前面的m個數
阿新 • • 發佈:2021-01-20
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