代码打卡 出租车计价

7-1 出租车计价

分数 15

入门

作者 沈睿

单位 浙江大学

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

  • 起步里程为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

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

解题思路:

        题目要求实现出租车计价的分段计数,体现在代码上即为使用if-else语句对里程范围和等待时间进行区间的区分和嵌套。

  • 如果行驶距离小于或等于3公里,则收取10元的最低费用。如果乘车时间超过5分钟,则每5分钟额外收取2元的费用。
  • 如果行驶距离在3公里到10公里之间(含),则首3公里收取10元的基本费用,之后每公里收取2元的额外费用。如果乘车时间超过5分钟,则每5分钟额外收取2元的费用。
  • 如果行驶距离超过10公里,则首10公里收取24元的基本费用,之后每公里收取3元的额外费用。如果乘车时间超过5分钟,则每5分钟额外收取2元的费用。

        需要特别注意的是,题目要求输出的最终结果为整型数据,并进行四舍五入。对于JAVA语言,可以使用Math包里自带的round方法进行四舍五入。或者自己写个条件判断语句进行四舍五入。

代码实现:

import java.util.Scanner;
public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        double miles = sc.nextDouble();
        int time = sc.nextInt();
        if(miles<=3){
            if(time<5){
                System.out.println("10");
            }
            else System.out.println(10+time/5*2);
        }
        else if(miles>3&&miles<=10){
            if(time<5){
                System.out.println(Math.round(10+(miles-3)*2));
            }
            else System.out.println(Math.round(10+(miles-3)*2+time/5*2));
        }
        else{
            if(time<5){
                System.out.println(Math.round(24+(miles-10)*3));
            }
            else System.out.println(Math.round(24+(miles-10)*3+time/5*2));
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值