Java经典习题36

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

import java.util.*;

public class Class36 {

public static void main(String[] args) {
int a[] = new int[]{1,2,3,4,5,6,7,8,9,10,11,12};
int b[] = new int[a.length];
int c[] = new int[a.length];
System.out.println("请输入m的数值:");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
if(m >= a.length){
System.out.println("输入会导致计算异常,请重新输入。");
}
System.out.println("需要移动数字个数:");
Scanner sc1 = new Scanner(System.in);
int k = sc1.nextInt();
if(k >= a.length){
System.out.println("输入会导致计算异常,请重新输入。");
}
int w = k + m;
for(int i = 0; i < a.length; i++){
if(i < k - 1){
b[i] = a[i + k];
b[i + k - 1] = a[i];
}
if(i == k - 1){
b[w - 1] = a[k - 1];
}
if((i >= w) && (i <= a.length - 1)){
b[i] = a[i];
}
}
for(int i = 0; i < a.length; i++){
if(i < k){
c[i] = b[a.length - k + i];
}else{
c[i] = b[i - k];
}
}
System.out.println("输出排序好的数列:");
for(int i = 0; i < a.length; i++){
System.out.print(c[i] + " ");
}
}

}

猜你喜欢

转载自www.cnblogs.com/zhuozige/p/12358768.html
今日推荐