杭电oj--2186解题报告

杭电oj地址:http://acm.hdu.edu.cn/showproblem.php?pid=2186

题目描述:

灾后的救援需要很多的人员,现在又刚刚到达一批志愿者,他们一共有n(10<=n<=1000)人,根据指挥部的指示,他们将被分为抢险、医疗以及通信等3个小分队,并且规定,抢险小分队需要占总人数的一半(如果有小数的话,则舍去),医疗小分队需要占剩余人数的2/3(如果有小数的话,则舍去),剩余的则组成通信小分队。比如一共有55人,那么抢险小分队为55/2=27人,减去抢险小分队为27人剩下28人,则医疗小分队为28*2/3 = 18人,通信小分队为55-27-18=10人。

为了保证救援工作的顺利进行,指挥部决定为每个小分队指派若干当地的向导,原则是为每十个志愿者指派一个向导(如有不足10人的情况,也指派一个),现在请问:需要为这批志愿者指派多少个向导呢?
 

Input
输入数据首先包含一个正整数C,表示有C组测试用例,然后是C行数据,每行包含一个正整数n(10<=n<=1000),表示志愿者的总人数。
 

Output
对于每组测试数据,请输出需要的向导数目,每个输出占一行。
 

Sample Input
  
  
2 14 55
 

Sample Output
  
  
3 6


题目要求抢险、医疗、通信人员的人数,只需按步骤求出:

我的代码如下(已AC):

#include<stdio.h>
int main()
{
    int n,q,y,t;
    int i,ren;
    scanf ("%d",&n);
    for (i=0; i<n; i++)
    {
        scanf ("%d",&ren);
        q=ren/2;
        y=2*(ren-q)/3;
        t=ren-q-y;
        //printf ("%d  %d  %d\n",q,y,t);


        if (q%10==0)
            q=(q/10);
        else
            q=(q/10)+1;
        if (y%10==0)
            y=(y/10);
        else
            y=(y/10)+1;
        if (t%10==0)
            t=(t/10);
        else
            t=(t/10)+1;
        printf ("%d\n",q+y+t);
    }
    return 0;
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值