java - 为什么我在 Hackerrank 上的这段代码中因超时而被终止?我的最后一次迭代没有发生?

标签 java algorithm timeout

问题-小鲍比喜欢巧克力。他经常去他最喜欢的商店 Penny Auntie 购买它们。他们正在 Penny Auntie 进行促销。如果 Bobby 节省了足够多的 wrapper ,他可以把它们换成免费巧克力。

例如,Bobby 必须花钱购买每 block 巧克力。他可以交出 wrapper 以获得另一 block 金条。最初,他购买巧克力棒并在吃完​​后将其包装起来。他上交了它们,留下 , 以获得更多的酒吧。吃了那两个之后,他有了 wrapper ,转身离开了 wrapper 和他的新酒吧。一旦他吃了那个,他就有了 wrapper 并将它们变成另一个酒吧。吃完那个,他只剩下皮了,他的宴会就结束了。总的来说,他吃过酒吧。

功能说明

在下面的编辑器中完成chocolateFeast功能。它必须返回 Bobby 在充分利用促销后可以吃的巧克力数量。

chocolateFeast 具有以下参数:

n:一个整数,代表Bobby的初始金额 c:一个整数,代表一 block 巧克力的成本 m:一个整数,表示他可以为免费金条上交的 wrapper 数量 注意:如果 Little Bobby 有足够的钱来获得免费巧克力,他总是会交出他的 wrapper 。

输入格式

第一行包含一个整数,表示要分析的测试用例的数量。 接下来的每一行都包含三个以空格分隔的整数: 、 和 。它们代表要花的钱、一 block 巧克力的成本,以及他可以为免费巧克力上交的 wrapper 数量。

约束

输出格式

对于每次去 Penny Auntie 的旅行,在新行上打印 Bobby 吃的巧克力总数。

示例输入

3 10 2 5 12 4 4 6 2 2 示例输出

6 3个 5

我已经用下面的代码试过了-

static int chocolateFeast(int n, int c, int m) {
    int bars=n/c;
    int wrapper=bars;
    int sum=bars;
    while((wrapper/m)!=0){
        bars=wrapper/m;
        sum+=bars;
        wrapper=bars+bars%m;
    }
return sum;
}
public static void main(String[] args)throws IOException{
    Scanner sc=new Scanner(System.in);
    int t,n,c,m,total;
    t=sc.nextInt();
    for (int i=1;i<=t;i++){
        n=sc.nextInt();
        c=sc.nextInt();
        m=sc.nextInt();
        total=chocolateFeast(n,c,m);
        System.out.println(total);
    }
}

输入(标准输入) 3个 10 2 5 12 4 4 6 2 2 您的输出(标准输出) 6个 3个 预期产出 6个 3个 5

最佳答案

编辑2:

题目看错了,按照M Oehm改了代码。下面的代码现在似乎可以工作了。您正在检查 bars%m 而不是 wrapper%m

    static int chocolateFeast(int n, int c, int m) {
        int bars=n/c;
        int wrapper=bars;
        int sum=bars;
        while((wrapper/m) != 0){
            bars=wrapper/m;
            wrapper=bars + wrapper%m;
            sum+=bars;
        }
    return sum;
    }

我检查了您提供的示例的输出,它正确输出了 6 3 5

关于java - 为什么我在 Hackerrank 上的这段代码中因超时而被终止?我的最后一次迭代没有发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56135250/

相关文章:

java - 从对象中私有(private)的关键字段获取 MethodHandle 列表

java - WebSocket 握手 : Unexpected response code: 404 -

arrays - 对三个数组的元素进行排序的算法

90 秒后 ASP.NET 请求超时 - 服务不可用 503

java - 如何使用 JFileChooser 在 Jython 中选择要保存文件的文件夹

java - 为什么使用 Hibernate 和 Oracle 10g 方言通过 JPA 创建名为 hibernate_sequence 的序列?

algorithm - 预测 "blood glucose"算法?

java - 塔防中寻路的最佳算法

macos - launchd ExitTimeOut 不起作用

python - 用超时跳过输入函数