您的位置:首页 > 其它

15OJ——分跑道

2015-06-05 19:15 134 查看
/*

* Copyright (c) 2014, 烟台大学计算机学院

* All rights reserved.

* 文件名称:test.cpp

* 作 者:李晓凯

* 完成日期:2015年 6 月 4 日

* 版 本 号:v1.0

*

* 问题描述:

* 输入描述:

* 程序输出:

*/


题目描述

有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


解析:这个题目乍一看没找到思路,后来想了想,其实还是挺简单的,先确定要分几条跑道,确定了以后,再将个跑道上分平均多的人,将余下的从第一个跑道依次加1,然后输出就ok了

代码:

#include <iostream>
using namespace std;
int main()
{
int n,m,i;
cin>>n;
if(n%8==0)
m=n/8;
else
m=n/8+1;
int a=n%m;
int b=n/m;
for(i=0;i<a;++i)
cout<<b+1<<endl;
for(i=0;i<m-a;++i)
cout<<b<<endl;
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: