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

3. Магазин за цветя - 87/100

Здравейте задачата е: 

Магазин за цветя предлага 3 вида цветя: хризантеми, рози и лалета. Цените зависят от сезона.

Сезон

Хризантеми

Рози

Лалета

Пролет / Лято

2.00 лв./бр.

4.10 лв./бр.

2.50 лв./бр.

Есен / Зима

3.75 лв./бр.

4.50 лв./бр.

4.15 лв./бр.

В празнични дни цените на всички цветя се увеличават с 15%. Предлагат се следните отстъпки:

  • За закупени повече от 7 лалета през пролетта 5% от цената на целият букет.
  • За закупени 10 или повече рози през зимата 10% от цената на целият букет.
  • За закупени повече от 20 цветя общо през всички сезони 20% от цената на целият букет.

Отстъпките се правят по така написания ред и могат да се наслагват! Всички отстъпки важат след оскъпяването за празничен ден!

Цената за аранжиране на букета винаги е 2лв. Напишете програма, която изчислява цената за един букет.

Вход

Входът се чете от конзолата и съдържа точно 5 реда:

  • На първия ред е броят на закупените хризантемицяло число в интервала [0 ... 200]
  • На втория ред е броят на закупените розицяло число в интервала [0 ... 200]
  • На третия ред е броят на закупените лалетацяло число в интервала [0 ... 200]
  • На четвъртия ред е посочен сезона[Spring, Summer, Аutumn, Winter]
  • На петия ред е посочено дали денят е празник[Y – да / N - не]

Изход

Да се отпечата на конзолата 1 число – цената на цветята, форматирана до вторият знак след десетичната запетая.

Примерен вход и изход

Вход

Изход

Обяснения

2

4

8

Spring

Y

46.14

Цена: 2*2.00 + 4*4.10 + 8*2.50 = 40.40 лв.

Празничен ден  40.40 + 15% = 46.46 лв.

5% намаление за повече от 7 лалета през пролетта – 44.14.

Общо цветята са 20 или по-малко – няма намаление

44.14 + 2 за аранжиране = 46.14 лв.

Вход

Изход

Обяснения

Вход

Изход

3

10

9

Winter

N

69.39

Цена: 3*3.75 + 10*4.50 + 9*4.15 = 93.60 лв.

Не е празничен ден – няма увеличение

10 % намаление за 10 или повече рози през зимата – 84.24.

Общо цветята са повече от 20 – 20% намаление = 67.392

67.392 + 2 за аранжиране = 69.392 лв.

10

10

10

Autumn

N

101.20

 

Не мога да разбера защот ми дава 87/100, изпробвах много варианти. В единият Test #2 ми минава, но Test #7 и #8 не (вариант с 75/100). В другият Test #2 не минава, но Test #7 и #8 минават (това е варианта с 87/100)

Изпращам patebin с моят код: https://pastebin.com/xXFHNK2T

Тагове:
0
Programming Basics
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

Nice code, only small validation error =>

if ((boughtHrizantems + boughtRoses + boughtRoses) > 20) { totalPrice *= 0.80; }

if ((boughtHrizantems + boughtRoses + boughtTulips) > 20) { totalPrice *= 0.80; }

Refactored demo

function flowers(input) {
    let boughtHrizantems = Number(input[0]);
    let boughtRoses = Number(input[1]);
    let boughtTulips = Number(input[2]);
    let season = input[3];
    let ifHoliday = input[4];
    let totalPrice = 0
    let priceHriz = 0;
    let priceRoses = 0
    let priceTulip = 0;

    if (season == 'Spring' || season == 'Summer') {
        priceHriz = 2.00;
        priceRoses = 4.10
        priceTulip = 2.50;
        totalPrice = boughtHrizantems * priceHriz + boughtRoses * priceRoses + boughtTulips * priceTulip;

        if (ifHoliday == 'Y') { totalPrice *= 1.15; }

        if (season == 'Spring' && boughtTulips > 7) { totalPrice *= 0.95; }
    } else if (season == 'Autumn' || season == 'Winter') {
        priceHriz = 3.75;
        priceRoses = 4.50;
        priceTulip = 4.15;
        totalPrice = boughtHrizantems * priceHriz + boughtRoses * priceRoses + boughtTulips * priceTulip;

        if (ifHoliday == 'Y') { totalPrice *= 1.15; }

        if (boughtRoses >= 10 && season == 'Winter') { totalPrice *= 0.90; }
    }

    if ((boughtHrizantems + boughtRoses + boughtTulips) > 20) { totalPrice *= 0.80; }

    totalPrice += 2;

    console.log(totalPrice.toFixed(2));
}

 

0
nikoalaaa avatar nikoalaaa 1 Точки

Thank you very much. Next time I will be more careful. 

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