/**
* 计算 疯狂值
* 5 10 15 30 70 80 100
* */
public class ListExcer {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入这组数的个数:");
int number = s.nextInt();
List<Integer> list =new ArrayList<Integer>();
for(int i =0;i<number ;i++){
System.out.println("请输入第"+(i+1)+"个数:");
list.add(s.nextInt());
}
//对列表进行计算疯狂值
int sum = sort(list);
System.out.println(sum);
Collections.reverse(list);
int sum1 = sort(list);
System.out.println(sum1);
}
private static int sort(List<Integer> list) {
//对列表进行排序
Collections.sort(list);
System.out.println(list);
//创建一个新数组用于存放结果
List<Integer> l = new ArrayList<Integer>();
//先放入第一个元素
l.add(list.get(list.size()-1));//添加一个最大的数
//提示下次的动作
int des = 0;//0 左小 1右小 2左大 3右大
for(int i = 0,start = 0,end = list.size()-2;i<list.size()-1;i++){
if(des == 0){
//向首位添加最小的数
l.add(0,list.get(start));
start++;
}else if(des == 1){
//向末尾添加第二小的数
l.add(list.get(start));
start++;
}else if(des == 2){
//向首位添加最大的数
l.add(0,list.get(end));
end--;
}else{
//向末尾添加第二大的数
l.add(list.get(end));
end--;
des =-1;
}
des++;
}
System.out.println(l);
//开始计算疯狂值
int sum = 0;
for(int i = 0;i<l.size()-1;i++){
sum += Math.abs(l.get(i)-l.get(i+1));
}
return sum;
}
}
Java中集合 练习 计算疯狂值
最新推荐文章于 2024-05-05 23:40:02 发布