题目要求
分析
一看,这就是水题啊。。。
问题是,看看这AC-Rate,吓不吓人~~~
所以我们应该去分析这里的坑(当时我也是头铁跪了多次……)
读完题我们可能会想直接去将s/t以后得到答案对吧?
但是“完整的苹果”怎么理解?
“完整的苹果”其实是说,苹果可以吃一半,对吧?
比如说10分钟一个苹果,吃了15分钟,那就是1.5个苹果,实际消耗的是2个。假设原来有5个苹果,那就剩下3个完整的。
那就是我们可以用s/t以后取到上整~~(因为要求的是完整的苹果数,所以说剩余的是下整,对应的消耗就是上整)
上整怎么搞?
Java有 java.lang.Math类 → (这是我写的博客)
- Math.ceil()是上整
- Math.floor()是下整
我们选Math.ceil(),但返回值是double,我们需要强转为int。
然后呢,是后面痛苦的根源——s/t!!!
我忘记了int/int是直接得到int,截断取整,并没有浮点数……
难怪我改半天也不知道问题在哪里……
所以需要做一个细致的操作——将s转为double……
本题测试用例不涉及,但必须注意的一个问题是除0问题,我建议判一下t的0,如果是0就是没消耗,算是打印0吧~~
鉴于本题其实不难,上面也把坑分析了,所以直接上最终代码吧!
第N次提交——AC
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt(), t = scanner.nextInt(), s = scanner.nextInt();
if (t == 0) {
System.out.println(0);
return;
}
int temp = (int) Math.ceil((double)s / t);
m -= temp;
if (m < 0) {
System.out.println(0);
} else {
System.out.println(m);
}
scanner.close();
}
}