1. Съдомиялна (Dishwasher) - While Loops - More Exercises
Здравейте!
Опитвам се да реша тази задача, но Judge ми дава 60/100 ((Runtime errors). При дебъгване открих, че цикълът не спира при изчерпване на детергента, а уж условията за спиране на цикъла са валидни и съм сложил break. Къде бъркам?
Ето го и кода ми.
Благодаря предварително!
1.Съдомиялна
Гошо работи в ресторант и отговаря за зареждането на съдомиялната накрая на деня.
Вашата задача е да напишете програма, която изчислява, дали дадено закупено количество бутилки от препарат за съдомиялна е достатъчно, за да измие определено количество съдове. Знае се, че всяка бутилка съдържа 750 мл. препарат, за 1 чиния са нужни 5 мл., а за тенджера 15 мл. Приемете, че на всяко трето зареждане със съдове, съдомиялната се пълни само с тенджери, а останалите пъти с чинии. Докато не получите команда "End" ще продължите да получавате бройка съдове, които трябва да бъдат измити.
Вход
От конзолата се четат:
- Брой бутилки от препарат, който ще бъде използван за миенето на чинии - цяло число в интервала [1…10]
На всеки следващ ред, до получаване на командата "End" или докато количеството препарат не се изчерпи, брой съдове, които трябва да бъдат измити - цяло число в интервала [1…100]
Изход
В случай, че количеството препарат е било достатъчно за измиването на съдовете:
"Detergent was enough!"
"{брой чисти чинии} dishes and {брой чисти тенджери} pots were washed."
"Leftover detergent {количество останал препарат} ml."
В случай, че количеството препарат не е било достатъчно за измиването на съдовете:
"Not enough detergent, {количество не достигнал препарат} ml. more necesary!"
Примерен вход и изход
Вход |
Изход |
Обяснения |
2 53 65 55 End |
Detergent was enough! 118 dishes and 55 pots were washed. Leftover detergent 85 ml. |
Количество препарат = 2 * 750 = 1500 мл. 53 чинии са заредени => 53 * 5 = 265 мл. 1500 — 265 = 1235 мл. (остатък) 65 чинии => 65 * 5 = 325 мл. 1235 — 325 = 910 мл. (остатък) 55 тенджери => 55 * 15 = 825 мл. 910 — 825 = 85 мл. (остатък) Получаваме команда "End", следователно количеството е стигнало и се печата съответното съобщение: Брой чинии = 53 + 65 = 118. Брой тенджери = 55 |
1 10 15 10 12 13 30 |
Not enough detergent, 100 ml. more necessary! |
Количество препарат = 1 * 750 = 750 мл. 10 чинии => 10 * 5 = 50 мл. 750 — 50 => 700 (остатък) 15 чинии => 15 * 5 = 75 мл. 700 — 75 = 625 мл. (остатък) 10 тенджери => 10 * 15 = 150 мл. 625 — 150 = 475 мл. (остатък) 12 чинии => 12 * 5 = 60 мл. 475 — 60 = 415 мл. (остатък) 13 чинии => 13 * 5 = 65 мл. 415 — 65 = 350 мл. (остатък) 30 тенджери => 30 * 15 = 450 мл. 350 <= 450 (100 недостиг),следователно печатаме съобщение за недостиг на препарата |
Благодаря много, видях си грешката! А в този случай boolean проверките са дори излишни и ги махнах.