本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为3公里,起步费10元;
- 超起步里程后10公里内,每公里2元;
- 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
- 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费 )。
输入格式:输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:2.6 2
输出样例1:10
输入样例2:5.1 4
输出样例2:14
输入样例3:12.5 9
输出样例3:34
import java.util.Scanner; public class Main { public static void main(String[] args) { int step = 10;//起步价 Scanner s = new Scanner(System.in); String input = s.nextLine(); String[] inputs = input.split(" "); if(inputs.length == 2) { float roads = Float.parseFloat(inputs[0]); int time = Integer.parseInt(inputs[1]); int i = (int) roads/3;//判断是否超出3公里 int j = (int) time/5;//判断是否超出5分钟 if(j < 1)//5分钟内 { if(i<1)//3公里内(不含3公里) System.out.print(step); else { if(roads <= step)//大于等于3公里小于等于10公里 System.out.print(Math.round(step+(roads-3)*2)); else //大于10公里 System.out.print(Math.round(step+14+(roads-10)*3)); } } else//超过5分钟 { if(i<1) System.out.print(step+2*j); else { if(roads <= step) System.out.print(Math.round(step+(roads-3)*2+2*j)); else System.out.print(Math.round(step+14+(roads-10)*3+2*j)); } } } } }
Java的四舍五入:
(转载自http://blog.csdn.net/shangboerds/article/details/7477336)
Java 的 Math 和 StrictMath 类提供了一些关于数学运算的静态方法. Math 类中的方法运行速度更快而 StrictMath 类中的方法更为精确.
Math 和 StrictMath 类提供了以下四个方法来进行四舍五入运算:
ceil // 天花板
round // 四舍五入, 返回整数
rint // 四舍五入, 返回浮点数
floor // 地板
来看下面代码的结果, 你就知道它们的意思了。
public static void main(String[] args) { System.out.println("ceil testing"); System.out.println("1.4 --ceil--> " + Math.ceil(1.4)); System.out.println("1.5 --ceil--> " + Math.ceil(1.5)); System.out.println("-1.4 --ceil--> " + Math.ceil(-1.4)); System.out.println("-1.5 --ceil--> " + Math.ceil(-1.5)); System.out.println(); System.out.println("round testing"); System.out.println("1.4 --round--> " + Math.round(1.4)); System.out.println("1.5 --round--> " + Math.round(1.5)); System.out.println("-1.4 --round--> " + Math.round(-1.4)); System.out.println("-1.5 --round--> " + Math.round(-1.5)); System.out.println(); System.out.println("rint testing"); System.out.println("1.4 --rint--> " + Math.rint(1.4)); System.out.println("1.5 --rint--> " + Math.rint(1.5)); System.out.println("-1.4 --rint--> " + Math.rint(-1.4)); System.out.println("-1.5 --rint--> " + Math.rint(-1.5)); System.out.println(); System.out.println("floor testing"); System.out.println("1.4 --floor--> " + Math.floor(1.4)); System.out.println("1.5 --floor--> " + Math.floor(1.5)); System.out.println("-1.4 --floor--> " + Math.floor(-1.4)); System.out.println("-1.5 --floor--> " + Math.floor(-1.5)); }
结果:
ceil testing 1.4 --ceil--> 2.0 1.5 --ceil--> 2.0 -1.4 --ceil--> -1.0 -1.5 --ceil--> -1.0 round testing 1.4 --round--> 1 1.5 --round--> 2 -1.4 --round--> -1 -1.5 --round--> -1 rint testing 1.4 --rint--> 1.0 1.5 --rint--> 2.0 -1.4 --rint--> -1.0 -1.5 --rint--> -2.0 floor testing 1.4 --floor--> 1.0 1.5 --floor--> 1.0 -1.4 --floor--> -2.0 -1.5 --floor--> -2.0
时间: 2024-10-14 13:57:32