Loading...
dmivanova avatar dmivanova 1 Точки

Проблем със задача Fishing Boat - 86/100

Здравейте, имам проблем със задача Fishing Boat, прегледах решенията във форума, но така и не разбрах къде ми е грешката. Може ли някой да погледне и да ми даде насоки къде греша и защо judge ми дава 86/100. Много благодаря! smiley

package boat_fishing;

import java.util.Scanner;

public class BoatFishing {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scanner = new Scanner(System.in);
		int budget = Integer.parseInt(scanner.nextLine());
		String season = scanner.nextLine();
		int fisherCount = Integer.parseInt(scanner.nextLine());
		double priceWithDiscount = 0.0;
		boolean extraDiscountSeason = ("Spring".equals(season) || "Summer".equals(season)
				|| "Winter".equals(season));

		if ("Spring".equals(season)) {
			if (fisherCount <= 6) {
				priceWithDiscount = 3000 * 0.9;
			} else if (fisherCount <= 11) {
				priceWithDiscount = 3000 * 0.85;
			} else if (fisherCount <= 18) {
				priceWithDiscount = 3000 * 0.75;
			}
		} else if ("Summer".equals(season) || "Autumn".equals(season)) {
			if (fisherCount <= 6) {
				priceWithDiscount = 4200 * 0.9;
			} else if (fisherCount <= 11) {
				priceWithDiscount = 4200 * 0.85;
			} else if (fisherCount <= 18) {
				priceWithDiscount = 4200 * 0.75;
			}
		} else if ("Winter".equals(season)) {
			if (fisherCount <= 6) {
				priceWithDiscount = 2600 * 0.9;
			} else if (fisherCount <= 11) {
				priceWithDiscount = 2600 * 0.85;
			} else if (fisherCount <= 18) {
				priceWithDiscount = 2600 * 0.75;
			}
		}
		if (extraDiscountSeason && fisherCount % 2 == 0) {
			priceWithDiscount = priceWithDiscount * 0.95;
		}
		if (budget > priceWithDiscount) {
			System.out.printf("Yes! You have %.2f leva left.", budget - priceWithDiscount);
		} else {
			System.out.printf("Not enough money! You need %.2f leva.", priceWithDiscount - budget);
		}
	}

}

 

Тагове:
0
Programming Basics with Java
mark79 avatar mark79 639 Точки

Здравей,

мисля, че нямаш такова условие в заданието ..

fisherCount <= 18

И накрая проверката има нужда и от равенство ..

if (budget >= priceWithDiscount) {

Поздрави :)

PS -> Ако искаш може да разгледаш един малко по-оптимизиран код тук.

0
07/10/2019 22:43:12
dmivanova avatar dmivanova 1 Точки

Привет, и без него резултатът е същият. sad 

Видях, че е добавено от един колега и реших и това да пробвам.

package boat_fishing;

import java.util.Scanner;

public class BoatFishing {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scanner = new Scanner(System.in);
		int budget = Integer.parseInt(scanner.nextLine());
		String season = scanner.nextLine();
		int fisherCount = Integer.parseInt(scanner.nextLine());
		double priceWithDiscount = 0.0;
		boolean extraDiscountSeason = ("Spring".equals(season) || "Summer".equals(season)
				|| "Winter".equals(season));

		if ("Spring".equals(season)) {
			if (fisherCount <= 6) {
				priceWithDiscount = 3000 * 0.9;
			} else if (fisherCount <= 11) {
				priceWithDiscount = 3000 * 0.85;
			} else {
				priceWithDiscount = 3000 * 0.75;
			}
		} else if ("Summer".equals(season) || "Autumn".equals(season)) {
			if (fisherCount <= 6) {
				priceWithDiscount = 4200 * 0.9;
			} else if (fisherCount <= 11) {
				priceWithDiscount = 4200 * 0.85;
			} else {
				priceWithDiscount = 4200 * 0.75;
			}
		}  else if ("Winter".equals(season)) {
			if (fisherCount <= 6) {
				priceWithDiscount = 2600 * 0.9;
			} else if (fisherCount <= 11) {
				priceWithDiscount = 2600 * 0.85;
			} else {
				priceWithDiscount = 2600 * 0.75;
			}
		}
		if (extraDiscountSeason && fisherCount % 2 == 0) {
			priceWithDiscount = priceWithDiscount * 0.95;
		}
		if (budget > priceWithDiscount) {
			System.out.printf("Yes! You have %.2f leva left.", budget - priceWithDiscount);
		} else {
			System.out.printf("Not enough money! You need %.2f leva.", priceWithDiscount - budget);
		}
	}

}

Това е първоначалното ми решение и не мога да ги докарам до 100. laugh

0
07/10/2019 22:43:26
mark79 avatar mark79 639 Точки

Проверката в края, ако бюджетът е по-голям или е равен липсва. Грешката е от липсата на знака за равенство :)

0
07/10/2019 22:47:56
dmivanova avatar dmivanova 1 Точки

Много благодаря, ще пробвам сега. blush

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