航电acm--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

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




#include
#include
#include

void main()
{
	int C, num;
	int save, doctor, message;
	int direct_save = 0, direct_doctor = 0, direct_message = 0;
	std::cin >> C;
	while (C--)
	{
		std::cin >> num;
		if (num >= 10 && num <= 1000)
		{

			save = num / 2;
			doctor = (num - save) * 2 / 3;
			message = num - save - doctor;

			if (save < 10)
			{
				direct_save = 1;
			}
			else if (save >= 10 && save % 10 == 0)
			{
				direct_save = save / 10;
			}
			else
			{
				direct_save =  1+save / 10 ;
			}


			if (doctor < 10)
			{
				direct_doctor = 1;
			}
			else if (doctor >= 10 && doctor % 10 == 0)
			{
				direct_doctor = doctor / 10;
			}
			else
			{
				direct_doctor =  1+doctor / 10 ;
			}


			if (message < 10)
			{
				direct_message = 1;
			}
			else if (message >= 10 && message % 10 == 0)
			{
				direct_message = message / 10;
			}
			else
			{
				direct_message =  1+message / 10 ;
			}

			std::cout << direct_doctor + direct_message + direct_save << std::endl;
		}
		else
			break;
	}
	
	system("pause");
	
}

你可能感兴趣的:(ACM)