您的位置:首页 > 其它

运动员分组 有N个人参加100米短跑比赛。跑道为8条。程序的任务是按照尽量使每组的人数相差最少的原则分组。

2013-04-28 12:45 1281 查看
/*	运动员分组
有N个人参加100米短跑比赛。跑道为8条。程序的任务是按照尽量使每组的人数相差最少的原则分组。
例如:
N=8时,分成1组即可。
N=9时,分成2组:一组5人,一组4人。
N=25时,分4组:7、6、6、6。

请编程计算分组数字。
要求从标准输入获得一个正整数(1~100之间,不必考虑输入错误的情况),表示参赛的人数。
程序输出每个组的人数。从大到小顺序输出,每个数字一行。

比如,
用户输入:25
程序输出:
7
6
6
6
*/
import java.util.Scanner;

public class 运动员分组 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("输入一个正整数(1~100之间),表示参赛的人数。");
int n = scan.nextInt();
int g = (n+7)/8;	// 分组数 g
if(g>8) g = 8;		// 超过8的直接分8组
int num = n/g;		// 每组人数(g-1)个num
int r = n%g;		// 分组 余数 r
for(int i=0;i<r;i++){	// 余数均分
System.out.println(num+1);
}
for(int i=0;i<g-r;i++){	// 输出剩下的
System.out.println(num);
}
}
}
运行结果:
输入一个正整数(1~100之间),表示参赛的人数。
25
7
6
6
6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐