2864: 分跑道。
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 34 Solved: 30
[ Submit][ Status][ Web Board]
Description
有N个人参加100米短跑比赛。跑道为8条。程序的任务是按照尽量使每组的人数相差最少的原则分组。
例如:
N=8时,分成1组即可。
N=9时,分成2组:一组5人,一组4人。
N=25时,分4组:7、6、6、6。
请编程计算分组数字。
Input
从键盘输入一个正整数(1~100之间,不必考虑输入错误的情况),表示参赛的人数。
Output
程序输出每个组的人数。从大到小顺序输出,每个数字一行。
Sample Input
25
Sample Output
7
6
6
6
#include <stdio.h> #include <stdlib.h> int main() { int n,t,i; scanf("%d",&n); if(n%8==0) t=n/8; else t=n/8+1; if(n==8) printf("1"); else { if(n-(n/t)*(t-1)>n/t) { printf("%d\n",n-(n/t)*(t-1)); for(i=1;i<t;i++) printf("%d\n",n/t); } else { for(i=1;i<t;i++) printf("%d\n",n/t); printf("%d",n-(n/t)*(t-1)); } } return 0; }