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


題目:有n個整數,使其前面各數順序向后移n-m個位置,最后m個數變成最前面的m個數

public class 第三十六題數組向后移m個位置 { public static void main(String[] args) { int[] a = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; int n = a.length; System.out.print("請輸入向后移動的位數: "); Scanner in = new Scanner(System.in); int m = in.nextInt(); in.close(); if (m < 1 ) { System.out.println("輸入的范圍錯誤"); } else if(m > a.length){ m = m % n; move(a, m); } else { move(a, m); } System.out.println(Arrays.toString(a)); } public static void move(int[] a,int m) { int n = a.length; int[] b = new int[n-m]; int len = n - m; //需要挪動的長度 //保存最后n-m個數字
        int j = 0; for(int i = m; i < n; i++,j++) { b[j] = a[i]; } //把前面的m個向后移動
        for(int i=0; i < m; i++) { a[i+len] = a[i]; } //把保存的數字拷貝的數組前面
        for(int k = 0; k < len; k++) { a[k] = b[k]; } } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM