Fishing Boat - Nested Conditional Statements РЕШЕНА
Здравейте,
на тази задача:
Лодка за риболов
Тони и приятели много обичали да ходят за риба, те са толкова запалени по риболова, че решават да отидат на риболов с кораб. Цената за наема на кораба зависи от сезона и броя рибари.
Цената зависи от сезона:
- Цената за наем на кораба през пролетта е 3000 лв.
- Цената за наем на кораба през лятото и есента е 4200 лв.
- Цената за наем на кораба през зимата е 2600 лв.
В зависимост от броя си групата ползва отстъпка:
- Ако групата е до 6 човека включително – отстъпка от 10%.
- Ако групата е от 7 до 11 човека включително – отстъпка от 15%.
- Ако групата е от 12 нагоре – отстъпка от 25%.
Рибарите ползват допълнително 5% отстъпка ако са четен брой освен ако не е есен - тогава нямат допълнителна отстъпка.
Напишете програма, която да пресмята дали рибарите ще съберат достатъчно пари.
Вход
От конзолата се четат точно три реда.
- Бюджет на групата – цяло число в интервала [1…8000]
- Сезон – текст : "Spring", "Summer", "Autumn", "Winter"
- Брой рибари – цяло число в интервала [4…18]
Изход
Да се отпечата на конзолата един ред:
- Ако бюджетът е достатъчен:
- Yes! You have {останалите пари} leva left."
- Ако бюджетът НЕ Е достатъчен:
- Not enough money! You need {сумата, която не достига} leva."
Сумите трябва да са форматирани с точност до два знака след десетичната запетая.
Примерен вход и изход
Вход |
Изход |
Обяснения |
|
3000 Summer 11 |
Not enough money! You need 570.00 leva. |
Лятото риболовния туризъм струва 4200 лв., 11 рибари ползват 15% отстъпка -> 4200 - 15% = 3570 лв., нечетен брой са и не ползват допълнителна отстъпка,. 3000 <= 3570, следователно не им достигат 570.00 лв. |
|
Вход |
Изход |
Вход |
Изход |
3600 Autumn 6 |
Not enough money! You need 180.00 leva. |
2000 Winter 13 |
Yes! You have 50.00 leva left. |
ми минават нулевите тестове, но в Judge ми дава 60/100.
Това е решението ми:
Моля за съдействие.
Предпочитам на Java съвет и по-конкретмно за моята логика, тъй като уж всичко съм преценила... Но мерси все пак ;)
Погледни този блок от кода :
if (numberFishermen <= 6) {
discount = 0.1;
} else if (numberFishermen >=7 && numberFishermen <= 11) {
discount = 0.15;
} else if (numberFishermen >= 12) {
discount = 0.25;
}
if ((numberFishermen % 2 == 0) && !season.equals("Autumn")) {
discount += 0.05;
}
Прави ми впечатление че на всякъде discount = "стойност", но само на последната проверка е discount +="стойност".
Така е, защото това е допълнителен процент към вече генерирания и го прибавям само ако е изпълнено условието за четен брой и да не е есен.