Why i am getting Terminated due to timeout in this code on Hackerrank? My last iteration is not taking place?
问题-小鲍比喜欢巧克力。他经常去自己喜欢的商店Penny Auntie购买。他们正在Penny Auntie升职。如果Bobby保存了足够的包装纸,则可以将其上交以获取免费的巧克力。
例如,鲍比(Bobby)必须花钱购买每块巧克力。他可以上交包装纸,以得到另一个酒吧。最初,他购买酒吧,并在吃完它们后得到包装纸。他上交了他们,留下来还有更多的酒吧。吃完那两个之后,他有了包装纸,然后把包装纸和新的酒吧留给他。一旦吃完那个,他就会有包装纸,然后将它们上交另一个酒吧。吃完那个之后,他只有包装纸,他的fe席结束了。总的来说,他已经吃过酒吧。
功能说明
在下面的编辑器中完成ChocolateFeast功能。它必须返回充分利用促销活动后Bobby可以吃的巧克力数量。
ChocolateFeast具有以下参数:
n:代表Bobby初始金额的整数
c:代表巧克力棒成本的整数
m:整数,表示他可以申请免费包装的包装数量
注意:如果小鲍比有足够的精力来获取免费的巧克力,他总是会把包装纸上交。
输入格式
第一行包含一个整数,表示要分析的测试用例的数量。
接下来的每一行包含三个以空格分隔的整数:,和。它们代表花费的金钱,巧克力的成本以及他可以免费获得的巧克力包装纸的数量。
约束条件
输出格式
对于每次前往Penny Auntie的行程,请在新行中打印Bobby吃的巧克力总数。
样本输入
3
10 2 5
12 4 4
6 2 2
样本输出
6
3
5
我已经尝试使用以下代码进行此操作-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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更改了代码。 下面的代码现在似乎可以工作了。 您正在检查
1 2 3 4 5 6 7 8 9 10 11 | 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; } |
我检查了您提供的样本的输出,并正确输出了