首页 > 解决方案 > 'Dcoder' 练习失败的测试用例

问题描述

练习截图

所以我是编程的初学者,我认为这个简短的练习(见附图)很容易,但是当我提交代码时,它会返回测试用例的结果。我在其中一个测试用例中失败了,我不知道出了什么问题(遗憾的是,您看不到该测试用例的输入)。

这是我的代码:

    Scanner sc = new Scanner(System.in);

    int a = sc.nextInt(); // first distance
    int m = sc.nextInt(); // fare for distance a
    int n = sc.nextInt(); // fare for remaining distance
    int d = sc.nextInt(); // total distance

    int fare = (a*m)+((d-a)*n);

    System.out.println(fare);

谁能看到这种计算在什么情况下不正确?它看起来很容易,但不知何故我现在想不出解决方案。

如果这是相关的,示例输入是:1 2 3 5 给出输出:14

标签: java

解决方案


a不是行驶距离的一部分。这只是计算从一个价格切换到另一个价格的阈值。这么说吧:如果d小于a,司机会开始付钱给顾客吗?不。 ;)

您应该计算路线第一部分的价格,然后有条件地,如果d大于a,则将路线剩余部分的价格添加到该价格中。


推荐阅读