04. Vacation
Здравейте, пробвах да реша 4-та задача от упражнение за while цикъл, но judge ми дава 70/100. Някой може ли да ми обясни къде ми е грешката ? Благодаря предварително :)
https://pastebin.com/TeLpHhjE
Здравейте, пробвах да реша 4-та задача от упражнение за while цикъл, но judge ми дава 70/100. Някой може ли да ми обясни къде ми е грешката ? Благодаря предварително :)
https://pastebin.com/TeLpHhjE
Здравей, сбъркал си при печатането при 5 "spend" трябва да се печата общия брой, а не spendCounter.
Благодаря ти, по този начин ми даде 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.
Благодаря предварително :)
if (area < 0) { System.out.printf("No more cake left! You need %d pieces more.", Math.abs(area));
махнах равното и стана на 100. Защото казват, че трябва да печаташ колко парчета недостигат
За задачата Ваканция, кода който ти е на 90т., според мен проблема е ,че трябва да е
while (avaibleMoney <=moneyNeeded) и да влезе вътре в цикъла проверката написана по-долу:
if (avaibleMoney >= moneyNeeded) { System.out.printf("You saved the money for %d days.", dayCounter); break; Така дава 100т.Може би ако са въведени в началото еднакви стойности за avaibleMoney и moneyNeeded все пак трябва да се прочете на входа "spend" или "save" и съответната сума.Така поне аз си го обяснявам.
Благодаря ти за шеста задача не го бях забелязал условието с равното, но за четвърта неможе да е (avaibleMoney <= moneyNeeded), защото ще повтори още един път цикъла, ако парите са равни, а трябва да го повтаря (прибавя или изважда сума), само когато наличните пари са по-малко от нужнуте пари. Според мен логиката е вярна и задачата би трябвало да работи написана и по този начин незнам защо judge дава 90/100, може би има грешка някъде, но аз немога да я открия.
Може би не ми е било много ясно обяснението, но аз приложих точно по-горе написаното и ми даде 100т. https://pastebin.com/tVBGgcaU
При променяне на условието в:(avaibleMoney<=moneyNeeded), при "=" на двете въведени суми, не повтаря цикъла, а ще влезе в цикъла за да даде възможност за въвеждане поне веднъж на действие и сума, нищо че парите са достатъчни. Т.е. с твоето решение ти изключваш тази възможност за въвеждане на действие и сума, защото направо печатиш,че парите са събрани. Което е логично, но явно на judge не и харесва, а иска да се въведе поне веднъж действие и сума.
Не те разбирам, как ще ти даде възможност още един път да въведеш сума, като ако са равни парите влиза в проверката, печата и брейква цикъла, изобщо не достига след това до равентвото горе при (avaibleMoney <= moneyNeeded).
Здравей,
Възможно е при входа да се въведе еднаква стойност за avaibleMoney и moneyNeeded. Ако
while (avaibleMoney < moneyNeeded)
то тогава програмата няма да влезе в цикъла защото стойностите са равни. Наистина е по интуитивно при достатъчна налична сума въведна от входа да не се влиза изобщо в цикъл, но така е направена задачата. Когато се принтва output на конзолатар daysCount трябва да е число различно от нула.
Всичко това, обаче не е направено ясно от условието на задачата и създава главоболия.
Не е това проблема.
Да, сега забелязах, че трябва 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
Ако не си присъствал на упражнението, това е предложеното там решение, което работи на 100. https://pastebin.com/UM2jrX9c