【洛谷算法题】P5709-Apples Prologue / 苹果和虫子【入门2分支结构】
题目链接:【深基2.习6】Apples Prologue / 苹果和虫子 - 洛谷
🌏题目描述
八尾勇喜欢吃苹果。她现在有 m mm(1 ≤ m ≤ 100 1 \le m \le 1001≤m≤100)个苹果,吃完一个苹果需要花费 t tt(0 ≤ t ≤ 100 0 \le t \le 1000≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s ss(1 ≤ s ≤ 10000 1 \le s \le 100001≤s≤10000)分钟,请问她还有几个完整的苹果?
🌏输入格式
输入三个非负整数表示 m , t , s m, t, sm,t,s。
🌏输出格式
输出一个整数表示答案。
🌏样例 #1
🌙样例输入 #1
50 10 200
🌙样例输出 #1
30
🌏提示
如果你出现了 RE,不如检查一下被零除?
🌏题解
import java.util.Scanner; public class P5709 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m = in.nextInt(), t = in.nextInt(), s = in.nextInt(); // 总时间大于吃完所有苹果的时间, 吃一个苹果的时间等于 0 if (s >= m * t || t == 0) { System.out.println(0); // 不能吃完所有的苹果, 向上取整 } else { System.out.println((int)(m - (Math.ceil(s * 1.0 / t)))); } in.close(); } }
🌏总结
这个题就是分别考虑不同的情况,不同的情况采用不同的处理方法,这里使用多重选择else if
。C++ 的cout
输出浮点数时默认保留 6 位有效数字,在使用 Java 时,记住也要保留同样的 6 位有效数字。
Java保留有效 n 位有效数字的方法:
public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); double number = 0.06789; BigDecimal b = new BigDecimal(String.valueOf(number)); BigDecimal divisor = BigDecimal.ONE; // 保留几位有效数字就把 2 改成几 MathContext mc = new MathContext(2); System.out.println(b.divide(divisor, mc)); in.close(); } }