蓝桥杯-运动员分组
来源:互联网 发布:淘宝店铺代码 编辑:程序博客网 时间:2024/04/28 08:41
- 题目
有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 Grouping { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); if(N<=8) System.out.println(N); else if(N<=16) { System.out.println(N%2==0 ? N/2 :N/2+1); System.out.println(N/2); } else { if(N%8==0) { for(int i=0;i<N/8;i++) { System.out.println(8); } } else { for(int j=7;j>=6;j--) { int s = N/j; int y = N%j; if(y==0) { for(int i=0;i<s;i++) System.out.println(j); return ; } else { if(s>y) { for(int i=0;i<y;i++) System.out.println(j+1); for(int i=0;i<s-y;i++) System.out.println(j); return ; } } } } } }}
提炼分析后,在
import java.util.Scanner;public class Grouping { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); //组数 int group = N%8==0 ? N/8 : N/8+1; //每组基础人数 int n = N/group; //剩余人数 int rest = N - n*group; for(int i=0;i<group;i++) System.out.println(i<rest?n+1:n); }}
总是喜欢写一个python的,
N = int(raw_input())group = N/8 if N%8==0 else N/8+1n = N/grouprest = N - group*n for x in xrange(group): print n+1 if x<rest else n
0 0
- 蓝桥杯 运动员分组
- 蓝桥杯-运动员分组
- 蓝桥杯--运动员分组
- 运动员分组
- 运动员分组
- 运动员分组
- 运动员分组
- 蓝桥杯 运动员分组 数学小计算
- 运动员分组问题
- OJ 刷题---运动员分组
- oj 1337: 运动员分组
- 蓝桥杯真题——运动员分组
- 刷题、OJ 1337: 运动员分组
- java 趣味小编程 运动员分组
- 运动员报名
- 运动员分组 有N个人参加100米短跑比赛。跑道为8条。程序的任务是按照尽量使每组的人数相差最少的原则分组。
- 奥林匹克运动员 Olympic Athletes
- 向伊拉克运动员致敬!
- 1026. 程序运行时间(15) python篇
- 后台进程与守护进程区别
- 约素
- VC知识库视频大讲坛系列之GDI GDI+从入门到精通
- c++ 指针、常量指针、指针常量、引用的简单介绍
- 蓝桥杯-运动员分组
- 2014年传智Itcast C++培训3期视频全套
- Android之Glide(非常好用的图片加载框架)
- CentOS7 Docker 各种配置
- Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 没有为参数号 2 设置值
- Java之构造方法的重载
- BZOJ1560: [JSOI2009]火星藏宝图
- 关于Spring集成webSocket,页面访问404问题
- 网络流量监控分析工具ntopng的安装与使用