📑前言
本文主要是【算法】——最少刷题数的文章,如果有什么需要改进的地方还请大佬指出⛺️
🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:CSDN主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见
目录
- 📑前言
- 2143.最少刷题数
- 📑文章末尾
2143.最少刷题数
package 蓝桥杯第十一次;import java.util.Arrays;
import java.util.Scanner;public class 最少刷题数 {
/* 512 10 15 20 60 3 0 0 7*/public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int n = sc.nextInt();int a[] = new int[n+1];int b[] = new int[n+1];for(int i=1;i<=n;i++) {a[i] = sc.nextInt();b[i] = a[i];}Arrays.sort(a);int avg = a[n/2+1];//中位数int less = 0;int more = 0;//找出刷题数比中位数少和多的人for(int i=1;i<=n;i++) {if(a[i]<avg) {less++;}if(a[i]>avg) {more++;}}for(int i=1;i<=n;i++) {if(b[i]>avg) {b[i]=0;}else if(b[i]==avg) {//如果刷题少的人比刷题多的人要少,则还要多刷一题if(less<more) {b[i]=1;}else {b[i]=0;}}else {if(more<less) {b[i]=avg-b[i];}else {b[i]=avg-b[i]+1;}}}for(int i=1;i<=n;i++) {System.out.print(b[i]+" ");}}}