出租车计价
题目描述:
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为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
思路:本题主要考察java中else-if选择分支结构的用法,题目中的里程收费有3种情况,分别是milage<=3, 3<milage<=10,milage>10,我们可以分别使用else if来区分这三种情况,暂停时间计费只需要考虑一种情况所以不需要用到else if,详细代码如下:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
double Milage;//定义里程
int time;//定义暂停时间
int cost = 0;//定义收费
Scanner scan = new Scanner(System.in);
Milage = scan.nextDouble();
time = scan.nextInt();
if(Milage <= 3) cost += 10;//milage<=3的情况
else if(Milage >3 && Milage <= 10) cost += Math.round(10+(Milage-3)*2);//10=>milage>3的情况
else if(Milage > 10) cost += Math.round(24+(Milage-10)*3);//milage>10的情况
cost += Math.floor(time/5) * 2;//cost计入暂停收费的情况
System.out.println(cost);
}
}
运行效果:
评测详情
测试点 | 提示 | 内存(KB) | 用时(ms) | 结果 | 得分 | |
0 | sample 1 起步价,不等待 | 16252 | 154 | 答案正确 | 2 / 2 | |
1 | sample 2 超过、10公里内,不等待,舍 | 15732 | 158 | 答案正确 | 5 / 5 | |
2 | sample 3 超过10公里,等待,入 | 16088 | 142 | 答案正确 | 5 / 5 | |
3 | 3公里、5分钟 | 15816 | 138 | 答案正确 | 3 / 3 |
总结:掌握else if的选择分支语句可以帮助我们在学习java过程中解决一些简单的选择问题,熟练掌握else if的运用对于学习java是非常重要的!