Java经典算法40例(三十六)

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

代码:

import java.util.Scanner;

/**
 * 移位
 * @author cheng
 *
 */
public class ThirtySix {
    public void move(int n,int m){
        int[] array=new int[n];
        int[] x=new int[n];
        for(int i=0;iint)(Math.random()*100);
            x[i]=array[i];
        }
        System.out.println("右移前:");
        for(int i=0;i" ");
        }
        System.out.println();
        for(int i=0;iint temp=(i+m)%n;
            x[temp]=array[i];
        }
        System.out.println("右移后:");
        for(int i=0;i" ");
        }
    }
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.print("有多少个整数?");
        int n=scanner.nextInt();
        System.out.print("右移几位?");
        int m=scanner.nextInt();
        ThirtySix thirtySix=new ThirtySix();
        thirtySix.move(n, m);
        scanner.close();
    }
}

输出结果:

有多少个整数?5
右移几位?2
右移前:
48 44 76 60 3 
右移后:
60 3 48 44 76 

你可能感兴趣的:(java)