07.Toy Shop
Здравейте,
дали бихте могли да ми кажете къде е грешката ми в следния код:
prise_puzzle = 2.60 price_talking_doll = 3 price_teddy_bear = 4.10 price_minion = 8.20 price_truck = 2 total_price_trip = float(input()) num_puzzles = int(input()) num_talking_dolls = int(input()) num_teddy_bears = int(input()) num_minions = int(input()) num_truck = int(input()) total_checkout = prise_puzzle * num_puzzles + price_talking_doll * num_talking_dolls + price_teddy_bear \ * num_teddy_bears + price_minion * num_minions + price_truck * num_truck total_number = num_truck + num_minions + num_teddy_bears + num_puzzles + num_talking_dolls if total_number > 50: discount = 25 / 100 * total_checkout final_sum = total_checkout - discount rent = 0.1 * final_sum profit = final_sum - rent if profit > total_price_trip: money_left = profit - total_price_trip print(f"Yes! {money_left:.2f} lv left.") elif total_number < 50: rent = 0.1 * total_checkout profit = total_checkout - rent if profit < total_price_trip: money_left = total_price_trip - profit print(f"Not enough money! {money_left:.2f} lv needed.")
със следното условие на задачата:
Петя има магазин за детски играчки. Тя получава голяма поръчка, която трябва да изпълни. С парите, които ще спечели, иска да отиде на екскурзия. Да се напише програма, която пресмята печалбата от поръчката.
Цени на играчките:
- Пъзел - 2.60 лв.
- Говореща кукла - 3 лв.
- Плюшено мече - 4.10 лв.
- Миньон - 8.20 лв.
- Камионче - 2 лв.
Ако поръчаните играчки са 50 или повече магазинът, прави отстъпка 25% от общата цена. От спечелените пари Петя трябва да даде 10% за наема на магазина. Да се пресметне дали парите ще ѝ стигнат да отиде на екскурзия.
Вход
От конзолата се четат 6 реда:
- Цена на екскурзията - реално число;
- Брой пъзели - цяло число;
- Брой говорещи кукли - цяло число;
- Брой плюшени мечета - цяло число;
- Брой миньони - цяло число;
- Брой камиончета - цяло число.
Изход
На конзолата се отпечатва:
- Ако парите са достатъчни се отпечатва:
- "Yes! {оставащите пари} lv left."
- Ако парите НЕ са достатъчни се отпечатва:
- "Not enough money! {недостигащите пари} lv needed."
Резултатът трябва да се форматира до втория знак след десетичната запетая.
Примерен вход и изход
Вход |
Изход |
Обяснения |
|
|
|
40.8 20 25 30 50 10 |
Yes! 418.20 lv left. |
Сума: 20 * 2.60 + 25 * 3 + 30 * 4.10 + 50 * 8.20 + 10 * 2 = 680 лв. Брой на играчките: 20 + 25 + 30 + 50 + 10 = 135 135 > 50 => 25% отстъпка; 25% от 680 = 170 лв. отстъпка Крайна цена: 680 – 170 = 510 лв. Наем: 10% от 510 лв. = 51 лв. Печалба: 510 – 51 = 459 лв. 459 > 40.8 => 459 – 40.8 = 418.20 лв. остават |
Вход |
Изход |
Обяснения |
320 8 2 5 5 1 |
Not enough money! 238.73 lv needed. |
Сума: 90.3 лв. Брой на играчките: 21 21 < 50 => няма отстъпка Наем: 10% от 90.3 = 9.03 лв. Печалба: 90.3 – 9.03 = 81.27 лв. 81.27 < 320 => 320 – 81.27 = 238.73 лв. не достигат |
Проблема е, че ми излизат правилните стойности, но в judge ми дава 60/100 без да знам къде има грешка в кода
Благодаря за отделеното време!
Да, аз си открих проблема и ми даде 100/100. Мерси все пак.
Здравейте колеги, ще се радвам да ми откриете грешката. В Judge ми дава 60/100, a в PyCharm ми излизат всички решения правилно.
Здравей,
Така както си структурирал/а кода нямаш проверка за:
Или добави няколко условни конструкции, за да предвидиш горните ситуации, или ги раздели на две - едното да ти смята цената на наема при 25% отстъпка и отделно конструкция за случаите когато парите не/стигат.
Пускам ти моя код, ако ти върши работа: ЦЪК