輸入樣例:
6 2
1 2 3 4 5 6
輸出樣例:
5 6 1 2 3 4
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner sc=new Scanner(System.in); 5 int n=sc.nextInt(); 6 int m=sc.nextInt(); 7 int a[]=new int[n]; 8 for(int i=0;i<n;i++){ 9 a[(i+m)%n]=sc.nextInt();//數組位置的邏輯需要清楚 10 } 11 System.out.print(a[0]); 12 for(int i=1;i<n;i++){ 13 System.out.print(" "+a[i]); 14 } 15 } 16 }
有參考網上的各種答案,但是看別人的代碼實在是太長了 看不下去(看不懂)就開始研究自己寫 可能和別人方法都是一樣的。
一開始的做法是三個for循環 第一個用來賦值 第二個移動 第三個輸出 當時就覺得有點繁瑣,想着一會再簡化一下,結果算數組位置的時候就算錯了 【(i+m)%n】 就干脆全刪掉,直接寫自己想的簡化的代碼,然后碰巧答案正確。
第九行代碼a[(i+m)%n]是最重要的。