Почему я получаю Завершено из-за таймаута в этом коде на Hackerrank?Моя последняя итерация не проходит? - PullRequest
0 голосов
/ 14 мая 2019

Вопрос - Маленький Бобби любит шоколад.Он часто идет в свой любимый магазин, Penny Auntie, чтобы купить их.Они устраивают повышение в тетушке Пенни.Если Бобби экономит достаточно оберток, он может сдать их в бесплатный шоколад.

Например, Бобби должен тратить на шоколадные плитки, которые стоят каждый.Он может сдать обертки, чтобы получить еще один бар.Первоначально он покупает бары и имеет обертки после еды их.Он превращает их, оставляя его, для большего количества баров.Съев этих двоих, у него есть обертки, и он оставляет его с оберткой и его новым батончиком.Как только он съел это, у него есть обертки и превращает их в другой бар.После того, как он съел это, у него есть только обертка, и его пир заканчивается.В общем, он съел батончики.

Описание функции

Завершите функцию chocolateFeast в редакторе ниже.Он должен вернуть количество шоколадных конфет, которые Бобби может съесть после того, как в полной мере воспользуется акцией.

chocolateFeast имеет следующие параметры:

n: целое число, представляющее начальную сумму денег Бобби c: целое число, представляющее стоимость шоколадного батончика m: целое число, представляющее количество упаковщиков, которые он может сдать в качестве бесплатной плитки. Примечание: Маленький Бобби всегда будет сдавать упаковщики, если у него будет достаточно, чтобы получить бесплатный шоколад.

Формат ввода

Первая строка содержит целое число, обозначающее количество тестовых случаев для анализа.Каждая из следующих строк содержит три целых числа через пробел:, и.Они представляют собой потраченные деньги, стоимость шоколада и количество упаковок, которые он может использовать для бесплатного шоколада.

Ограничения

Формат вывода

За каждую поездку вТетя Пенни, напечатайте общее количество конфет, которые Бобби ест в новой строке.

Пример ввода

3 10 2 5 12 4 4 6 2 2 Пример вывода

6 35

Я попробовал это, используя следующий код:

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

1 Ответ

1 голос
/ 14 мая 2019

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 правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...