首页 > 代码库 > Java经典编程题50道之三十六

Java经典编程题50道之三十六

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

public class Example36 {
    public static void main(String[] args) {
        int[] m = { 18, 12, 23, 34, 95, 76, 57, 28, 9 };
        moveElement(m, 5);
    }

    public static void moveElement(int[] m, int n) {
        System.out.print("移位前的数组为:");
        for (int r : m) {
            System.out.print(r + " ");
        }

        if (n <= m.length) {
            int[] b = new int[m.length];
            for (int i = 0; i < m.length - n; i++) {
                b[i + n] = m[i];
            }
            int j = 0;
            for (int i = m.length - n; i < m.length; i++) {
                b[j] = m[i];
                j++;
            }

            System.out.print("\n移动" + n + "位后的数组为:");
            for (int r : b) {
                System.out.print(r + " ");
            }
        } else {
            System.out.print("\n移动错误!");
        }
    }
}

Java经典编程题50道之三十六