Loading...
peShev97 avatar peShev97 16 Точки

04. Vacation

Здравейте, пробвах да реша 4-та задача от упражнение за while цикъл, но judge ми дава 70/100. Някой може ли да ми обясни къде ми е грешката ? Благодаря предварително :)

 

https://pastebin.com/TeLpHhjE

0
Programming Basics with Java
DesislavaGG avatar DesislavaGG 37 Точки

Здравей, сбъркал си при печатането при 5 "spend" трябва да се печата общия брой, а не spendCounter.

0
peShev97 avatar peShev97 16 Точки

Не е това проблема.

0
DesislavaGG avatar DesislavaGG 37 Точки

Да, сега забелязах, че трябва dayCounter да се увеличава веднага след четенето, а не в края.

Мисля също, че трябва да промениш условието в while със следното:

while (!(avaibleMoney>moneyNeeded)) {
            String action = scanner.nextLine();
            double sum = Double.parseDouble(scanner.nextLine());
            dayCounter++;

Промених и :

else if ("save".equals(action)) {
                spendCounter = 0;
                avaibleMoney += sum;
                if (avaibleMoney >= moneyNeeded) {
                    System.out.printf("You saved the money for %d days.", dayCounter);
                    return;
                }

Така вече ми даде 100. Редактирана:https://pastebin.com/82CNyCM9
 

 

                     
0
08/10/2018 20:41:45
DesislavaGG avatar DesislavaGG 37 Точки

Ако не си присъствал на упражнението, това е предложеното там решение, което работи на 100. https://pastebin.com/UM2jrX9c
 

0
peShev97 avatar peShev97 16 Точки

Благодаря ти, по този начин ми даде 100/100, но немога да разбера защо https://pastebin.com/qMNiXRwR с този код ми дава 90/100 а с този https://pastebin.com/QcWAURPP ми дава 100/100. Единствената разлика е, че в условието заменяме с (true) и печатаме всичко вътре в цикъла, но според мен и с първото решение трябва да работи понеже логиката е идентична. Искам да знам дали първото решение е логически вярно и дали тези 90/100 идват от грешка някъде в judge или аз бъркам някъде. 

Имам идентичен проблем със 6-та задача Cake: https://pastebin.com/3ghyTcSn, дава ми 92/100.

Благодаря предварително :)

0
DesislavaGG avatar DesislavaGG 37 Точки
if (area < 0) {
    System.out.printf("No more cake left! You need %d pieces more.", Math.abs(area));

махнах равното и стана на 100. Защото казват, че трябва да печаташ колко парчета недостигат 

 

0
DesislavaGG avatar DesislavaGG 37 Точки

За задачата Ваканция, кода който ти е на 90т., според мен проблема е ,че трябва да е

while (avaibleMoney <=moneyNeeded) и  да влезе вътре в цикъла проверката написана по-долу:
if (avaibleMoney >= moneyNeeded) {
    System.out.printf("You saved the money for %d days.", dayCounter);
    break;
Така дава 100т.Може би ако са въведени в началото еднакви стойности за avaibleMoney и moneyNeeded все пак трябва да се прочете на входа "spend" или "save" и съответната сума.Така поне аз си го обяснявам.

 

 

0
peShev97 avatar peShev97 16 Точки

Благодаря ти за шеста задача не го бях забелязал условието с равното, но за четвърта неможе да е (avaibleMoney <= moneyNeeded), защото ще повтори още един път цикъла, ако парите са равни, а трябва да го повтаря (прибавя или изважда сума), само когато наличните пари са по-малко от нужнуте пари. Според мен логиката е вярна и задачата би трябвало да работи написана и по този начин незнам защо judge дава 90/100, може би има грешка някъде, но аз немога да я открия.

0
DesislavaGG avatar DesislavaGG 37 Точки

Може би не ми е било много ясно обяснението, но аз приложих точно по-горе написаното и ми даде 100т.   https://pastebin.com/tVBGgcaU
При променяне на условието в:(avaibleMoney<=moneyNeeded), при "=" на двете въведени суми, не повтаря цикъла, а ще влезе в цикъла за да даде възможност за въвеждане поне веднъж на действие и сума, нищо че парите са достатъчни. Т.е. с твоето решение ти изключваш тази възможност за въвеждане на действие и сума, защото направо печатиш,че парите са събрани. Което е логично, но явно на judge не и харесва, а иска да се въведе поне веднъж действие и сума. 

0
12/10/2018 21:04:33
peShev97 avatar peShev97 16 Точки

Не те разбирам, как ще ти даде възможност още един път да въведеш сума, като ако са равни парите влиза в проверката, печата и брейква цикъла, изобщо не достига след това до равентвото горе при (avaibleMoney <= moneyNeeded).

0
user184 avatar user184 14 Точки

Здравей,

Възможно е при входа да се въведе еднаква стойност за avaibleMoney и moneyNeeded. Ако

while (avaibleMoney < moneyNeeded)

то тогава програмата няма да влезе в цикъла защото стойностите са равни. Наистина е по интуитивно при достатъчна налична сума въведна от входа да не се влиза изобщо в цикъл, но така е направена задачата. Когато се принтва output на конзолатар daysCount трябва да е число различно от нула.

Всичко това, обаче не е направено ясно от условието на задачата и създава главоболия.

0
14/10/2018 12:54:33
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.