Dishwasher
Здравейте,
Моля за малко помощ.
Полувам 90 от 100. Не мога да видя какво изпускам.
Прилагам код и условие. Мерси !
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 necessary!"
import java.util.Scanner;
public class dishWasher {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int countBottles = Integer.parseInt(scan.nextLine());
countBottles*=750;
int mlPerDishes = 0;
int countDishes = 0;
int mlPerPots = 0;
int countPots = 0;
boolean isItEnd = false;
int allMlPerWash = 0;
int result = 0;
int looper = 0;
String input = "";
while (true){
input = scan.nextLine();
if ("End".equals(input)){
isItEnd = true;
break;
}
int dishInput = Integer.parseInt(input);
looper++;
if (looper % 3 == 0){
mlPerPots+=dishInput;
countPots+=dishInput;
}else {
mlPerDishes+=dishInput;
countDishes+=dishInput;
}
allMlPerWash = mlPerDishes*5 + mlPerPots*15;
if (countBottles <= allMlPerWash){
break;
}
} if (isItEnd || countBottles >= allMlPerWash){
result = countBottles - allMlPerWash;
System.out.printf("Detergent was enough!\n" +
"%d dishes and %d pots were washed.\n" +
"Leftover detergent %d ml.",countDishes,countPots,result);
}else {
result = Math.abs(allMlPerWash - countBottles);
System.out.printf("Not enough detergent, %d ml. more necessary!",result );
}
}
}
Много, много благодаря !!! Имам толкова варианти на код за тази задача , сега чак отчетох нулата и че трябваше да мисля за гранични проверки.