Софтуерно Инженерство
Loading...
aleksandra.zhv avatar aleksandra.zhv 0 Точки

Проблем със задача 8.ToyShop (Java)

Здравейте,

Имам проблем със задачата Toy Shop. Промених няколко пъти кода, но Judge продължава да ми дава 90/100. Излизат ми същите стойности както в примерните в задачата, но явно изпускам нещо. Надявам се някой от вас да ми каже къде греша, тъй като аз така и не можах да открия грешката си. Благодаря предварително. Прилагам условието на задачата:

 

https://pastebin.com/FzsbDGsC?fbclid=IwAR3_7R63UOtTvTDnTAybbySn1B1jsIMe1htGHCn1PVaB-Z4FcqPmjBFCLeI

Магазин за детски играчки

Петя има магазин за детски играчки. Тя получава голяма поръчка, която трябва да изпълни. С парите, които ще спечели иска да отиде на екскурзия. Да се напише програма, която пресмята печалбата от поръчката.

Цени на играчките:

  • Пъзел - 2.60 лв.
  • Говореща кукла - 3 лв.
  • Плюшено мече - 4.10 лв.
  • Миньон - 8.20 лв.
  • Камионче - 2 лв.

Ако поръчаните играчки са 50 или повече магазинът прави отстъпка 25% от общата цена. От спечелените пари Петя трябва да даде 10% за наема на магазина. Да се пресметне дали парите ще ѝ стигнат да отиде на екскурзия.

Вход

От конзолата се четат 6 реда:

  1. Цена на екскурзията - реално число в интервала [1.00 … 10000.00]
  2. Брой пъзели - цяло число в интервала [0… 1000]
  3. Брой говорещи кукли - цяло число в интервала [0 … 1000]
  4. Брой плюшени мечета - цяло число в интервала [0 … 1000]
  5. Брой миньони - цяло число в интервала [0 … 1000]
  6. Брой камиончета - цяло число в интервала [0 … 1000]

Изход

На конзолата се отпечатва:

  • Ако парите са достатъчни се отпечатва:
    • "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 лв. не достигат

 

 

Тагове:
0
Programming Basics
NikiKa avatar NikiKa 1 Точки

import java.util.Scanner;

public class ToyShop {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double price = Double.parseDouble(scanner.nextLine());
        int puzzle = Integer.parseInt(scanner.nextLine());
        int doll = Integer.parseInt(scanner.nextLine());
        int bear = Integer.parseInt(scanner.nextLine());
        int minion = Integer.parseInt(scanner.nextLine());
        int truck = Integer.parseInt(scanner.nextLine());

        //  logic

        int toys = puzzle + doll + bear + minion + truck;
        double sum = (puzzle * 2.6) + (doll * 3) + (bear * 4.1) + (minion * 8.2) + (truck * 2);
        double discount = 0.0;

        if (toys >= 50) {
            discount = sum * .25;
        }
        double totalPrice = sum - discount;
        totalPrice = totalPrice - ( totalPrice * 0.1);


        if (price <= totalPrice ) {
            System.out.printf("Yes! %.2f lv left.", totalPrice - price);
        } else {
            System.out.printf("Not enough money! %.2f lv needed.", price - totalPrice);
        }
    }
}
 

0