题目5:运动员分组
代码如下:
import java.util.Scanner;
public class AthleteGrouping {
public static void main(String[] args) {
/* 有N个人参加100米短跑比赛。跑道为8条。
* 程序的任务是按照尽量使每组的人数相差最少的原则分组。
* 例如:N=8时,分成1组即可。
* N=9时,分成2组:一组5人,一组4人。
* 要求从键盘输入一个正整数N。
* 输出每个分组的人数。
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入参赛人数N(N为正整数):");
int n = sc.nextInt();
if(n%8 == 0) {
System.out.println("分成"+ n/8 + "组,每组人数为:");
for(int i=0; i<n/8; i++) {
System.out.print("8 ");
}
}
else {
int group = n/8 + 1; // 小组数
int remainder = n%group; //余数
System.out.println("分成"+ group + "组,每组人数为:");
for(int i=0; i<group; i++,remainder--) {
if(remainder>0) {
System.out.print((n/group+1)+" ");
}
else {
System.out.print(n/group+" ");
}![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/55266eb37d354232a2bfd10bed46c82b.png#pic_center)
}
}
}
}
运行结果: