ZCMU 1692: 鬼吹灯
Time Limit: 1 Sec Memory Limit: 128 MB
Description
胡八一和王胖子发现了一个墓穴决定去摸金,按照祖上传下的规矩,在摸金的时候要在墓穴口放上蜡烛,摸金的时候若是蜡烛全灭了就要把宝物放还墓主人,然而贪心的王胖子决定多放点蜡烛,墓主人的鬼魂宅在墓中上千年不运动表示肺活量不够,吹灭一根蜡烛需要x秒,设宝物有y件,胡八一每摸一个宝物需要z秒,贪心的王胖子需要你的帮助算一下需要放多少蜡烛才能在所有蜡烛熄灭前盗贼所有宝物?
Input
有t组数据.
每组数据一行,每行包含3个整数,x,y,z(0<=y<=1000,0<x,z<=1000)
Output
每组数据输出需要蜡烛的数量
Sample Input
2 2 1 1 1 1 1
Sample Output
1 2
思路
水题,题目要求输出大于偷盗时间除以吹灭蜡烛时间的最小蜡烛数,故要算y*z/x,但需要注意吹灭蜡烛和偷盗结束时间相同时,答案需要+1,以及若是z/x会除出小数时,整型相除得出的结果会比实际值小,故也应+1,所以对于任何答案直接+1即可得出。在此做法下会出现特殊值y=0,应当单独判断并输出0,而不是按照公式y*z/x+1得出1.
AC代码
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
while (n--)
{
int x, y, z,num;
scanf("%d%d%d", &x, &y, &z);
{
//算出num,由于整型除法均为向后取整,将小数直接去掉,
//加上偷盗和吹灭时间相同需要多放,因此无论算出什么数都应+1
num = z * y / x;
num++;
//排除y=0的情况
if(y)
printf("%d\n", num);
else printf("0\n");
}
}
return 0;
}