题目:蒜头君买了一箱 n 个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每 x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过 y 小时你还有多少个完整的苹果?
这个题目看起来很简单,一般人在看完题目之后就有了思路,直接输出答案,但是都会忽略一个条件,就是当一箱苹果的数量小于经历y小时能吃的苹果的数量时,结果会出现负数,结果是不对的。
如下代码:输入:2 1 3
输出:-1
import java.util.*;
class Main{
public static void main(String [] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int x = scanner.nextInt();
int y = scanner.nextInt();
// y/x表示经历y小时吃掉的苹果数,需要向上取整
int k = (int) Math.ceil(1.0*y/x);
System.out.print(n-k);
}
}
通过添加条件 判断当 n<y/x的时候 输出0,即经历y小时后还有0颗苹果
以下代码是通过测试的代码
import java.util.*;
class Main{
public static void main(String [] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int x = scanner.nextInt();
int y = scanner.nextInt();
// y/x表示经理y小时吃掉的苹果数,需要向上取整
int k = (int) Math.ceil(1.0*y/x);
if(n<k) {
System.out.println("0");
}else {
System.out.print(n-k);
}
}
}