[英]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:代表他可以免費贈送的包裝紙數量的整數注意:如果小Bobby願意,他總是會上交包裝紙有足夠的免費巧克力。
輸入格式
第一行包含一個整數,表示要分析的測試用例的數量。 接下來的每一行包含三個以空格分隔的整數:,和。 它們代表花費的金錢,巧克力的成本以及他可以免費獲得的巧克力包裝紙的數量。
約束
輸出格式
對於每次前往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);
}
}
}
輸入(stdin)3 10 2 5 12 4 4 6 2 2您的輸出(stdout)6 3預期輸出6 3 5
EDIT2:
我看錯了問題,並根據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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.