当前位置: 首页 > 知识库问答 >
问题:

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

石思淼
2023-03-14

问题-小鲍比喜欢巧克力。他经常去他最喜欢的商店——佩妮阿姨——买巧克力。他们在佩妮阿姨有促销活动。如果鲍比存了足够的包装纸,他可以把它们上交免费巧克力。

例如,鲍比必须花每根巧克力棒的钱。他可以上交包装纸来收到另一根巧克力棒。最初,他买巧克力棒,吃完后有包装纸。他上交了它们,留给他更多的巧克力棒。吃完这两根,他有包装纸,然后留下包装纸和他的新酒吧。一旦他吃了那根,他就有包装纸,然后把它们上交另一根。吃完那根,他只有包装纸,他的盛宴就结束了。总的来说,他吃了酒吧。

功能描述

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

巧克力羽毛具有以下参数:

n:表示Bobby的初始金额的整数 c:表示巧克力棒成本的整数 m:表示他可以为免费巧克力棒上交的包装数量的整数 注意:如果小鲍比有足够的钱来获得免费巧克力,他将始终交出他的包装纸。

输入格式

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

制约因素

输出格式

每次去佩妮阿姨,在一条新线上打印鲍比吃的巧克力总数。

示例输入

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);
    }
}

}

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

共有1个答案

柳才良
2023-03-14

编辑2:

我把问题读错了,并根据M Oehm修改了代码。下面的代码现在似乎可以工作了。您正在检查bars%m而不是包装器%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

 类似资料:
  • 当我只为一些特定的测试用例运行代码时,我得到了一个“由于超时错误而终止”。即使我的代码为其他测试用例成功编译。有人能帮我吗? 链接-https://www.hackerrank.com/challenges/phone-book 问题陈述: 你会得到一本电话簿,里面有人们的名字和电话号码。之后,你会得到一些人的名字作为查询。对于每个查询,打印该人的电话号码。 输入格式: 第一行有一个整数,表示通讯

  • 您将自动执行著名的歌曲“墙上的99瓶XXX”。你将打印这首歌所有99个诗句的歌词。用循环!如果你不知道歌词,用谷歌查一下。 该方案应: a.如果他们不到21岁,或者他们喜欢苏打水,那么歌词是“墙上有99瓶苏打水” B.如果他们超过21岁,那么是“99瓶啤酒” 您必须使用WHILE循环,并且counter变量必须是print语句的一部分! 所以第一节是: 99瓶苏打水挂在墙上 墙上有98瓶苏打水 最

  • 我正在尝试为两个字符串输入。一个是没有任何空格的名字,第二个是包含名字和姓氏之间空格的全名。因为fname变量只能保存一个单词,所以我在那里使用了Next()函数,而nextLine()用于full_name变量。但是代码只接受fname的输入,然后终止而不接受全名的输入。IDE显示没有错误。

  • 今天我在家里的电脑上安装了netbean,以便在家做一些工作。我安装了java 8 JDK(151),并安装了包含所有内容的netbean(没有进行自定义安装)。然后我把我的项目从github上撤下来。 我的安装文件夹是在E:\netbean我的项目文件夹是默认的c: 我加载了项目,打开XAMPP并运行它。太好了,很管用。 然后我对HTML进行了更改(修复了我犯的一个拼写错误)。再次运行。找不到零

  • 在这里,我附上了我的代码:我现在正在开发我想要创建的音乐播放器,所以我在Swing FrameWork上编码此代码可以正常工作,然后添加两个名为上一个按钮和下一个播放按钮的按钮,添加这些按钮后,摆动框架没有打开,即使我尝试通过评论新添加的行(上一个按钮和下一个按钮),但这对我没有帮助

  • 问题内容: 我正在阅读有关ConcurrentModificationException以及如何避免它的信息。找到了一篇文章。该文章中的第一个清单具有与以下相似的代码,这显然会导致异常: 然后,它继续以各种建议解释如何解决该问题。 当我尝试重现它时,我没有遇到异常! 为什么我没有得到例外? 问题答案: 根据JavaAPI文档,Iterator.hasNext不会抛出。 检查后,您从列表中删除了一个