Java中集合 练习 计算疯狂值

来源:互联网 发布:淘宝新店写给顾客的话 编辑:程序博客网 时间:2024/05/16 08:13
/** * 计算 疯狂值 * 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;}}

原创粉丝点击