第十三届蓝桥杯大赛软件赛省赛【Java 大学B 组】试题D: 最少刷题数


 

 

 1 import java.util.ArrayList;  2 import java.util.Scanner;  3 
 4 public class Main {  5     public static void main(String args[]) {  6 // System.out.println("请输入一个正整数N");
 7         Scanner sc = new Scanner(System.in);    //初始化Scanner对象
 8         int numN=sc.nextInt();            //输入
 9         ArrayList myNum= new ArrayList(); 10         ArrayList res= new ArrayList(); 11 // System.out.printf("依次输入%d个整数\n",numN);
12         for (int i = 0;i<numN ;i++ ) { 13             int tempNum=sc.nextInt(); 14  myNum.add(tempNum); 15             res.add(tempNum);        //保存排序之前的数据
16  } 17 // System.out.println("排序之前的数据:"+myNum.toString()+res.toString());
18         if(numN%2==0) { 19 // System.out.println("偶数"); 20             //从小到大排序:
21             int tempNum=0; 22             for(int i=0;i<numN;i++) { 23                 for (int j=i+1;j<numN;j++) { 24                     int i_num=(int) myNum.get(i); 25                     int j_num=(int) myNum.get(j); 26                     if(i_num>j_num) { 27                         tempNum=i_num; 28  myNum.set(i, j_num); 29  myNum.set(j, tempNum); 30  } 31  } 32  } 33 // System.out.println("排序之后的数据:"+myNum.toString()+res.toString()); 34 // System.out.println(myNum.toString()); 35             //开始计算 结果保存在res数组中 下面是偶数情况:
36             for (int i=0;i<numN ; i++) 37  { 38                 int zwNum=(int) myNum.get(numN/2); 39                 int resTempNum=(int) res.get(i);        //保存当前数据
40                 if((resTempNum==zwNum) || (resTempNum>zwNum)) { 41                             res.set(i, 0); 42                 }else { 43                     res.set(i, zwNum-resTempNum+1); 44  } 45  } 46         }else { 47 //---------------------------------------------------------------------- 48 // System.out.println("奇数"); 49             //从小到大排序:
50             int tempNum=0; 51             for(int i=0;i<numN;i++) { 52                 for (int j=i+1;j<numN;j++) { 53                     int i_num=(int) myNum.get(i); 54                     int j_num=(int) myNum.get(j); 55                     if(i_num>j_num) { 56                         tempNum=i_num; 57  myNum.set(i, j_num); 58  myNum.set(j, tempNum); 59  } 60  } 61  } 62 // System.out.println("排序之后的数据:"+myNum.toString()+res.toString()); 63             //开始计算 结果保存在res数组中 下面是奇数情况:
64                 for (int i=0;i<numN ; i++) 65  { 66                     int zwNum=(int) myNum.get(numN/2); 67                     int resTempNum=(int) res.get(i);        //保存当前数据
68                     if((resTempNum==zwNum) || (resTempNum>zwNum)) { 69                                 res.set(i, 0); 70                     }else { 71                         res.set(i, zwNum-resTempNum+1); 72  } 73  } 74  } 75         //输出结果
76  System.out.println(res.toString()); 77  } 78 }

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM