Loading...
+ Нов въпрос
BobbyDimitrov avatar BobbyDimitrov 1 Точки

Shopping / Conditional Statements - Exercise / Javascript

Здравейте, имам проблем със задачата.

Във VS code и двата резултатата  излизат без никакъв проблем, но когато пейстна задачата в Judge, показва 10 / 100.

Може ли малко помощ?

Благодаря :)

Код: https://pastebin.com/piY93GEV

Judge: https://judge.softuni.org/Contests/Compete/Index/2402#6

 

7. Пазаруване

Петър иска да купи N видеокарти, M процесора и P на брой рам памет. Ако броя на видеокартите е по-голям от този на процесорите получава 15% отстъпка от крайната сметка. Важат следните цени:

· Видеокарта – 250 лв./бр.

· Процесор – 35% от цената на закупените видеокарти/бр.

· Рам памет – 10% от цената на закупените видеокарти/бр.

Да се изчисли нужната сума за закупуване на материалите и да се пресметне дали бюджета ще му стигне.

Входът се състои от четири реда:

1. Бюджетът на Петър - реално число в интервала [0.0…100000.0]

2. Броят видеокарти - цяло число в интервала [0…100]

3. Броят процесори - цяло число в интервала [0…100]

4. Броят рам памет - цяло число в интервала [0…100]

Изход

На конзолата се отпечатва 1 ред, който трябва да изглежда по следния начин:

· Ако бюджета е достатъчен:

"You have {остатъчен бюджет} leva left!"

· Ако сумата надхвърля бюджета:

"Not enough money! You need {нужна сума} leva more!"

Резултатът да се форматира до втория знак след десетичната запетая.

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

Вход  1

(["900", "2"," 1", "3" ]) ; - You have 198.75 leva left!

Бюджет: 900 лв
Сума за видеокарти: 2 * 250 = 500 лв.

Цената за процесор: 35% от 500 = 175 лв. 
Сума за процесори: 1 * 175 = 175 лв.

Цената за рам памет: 10% от 500 = 50 лв.
Сума за рам памет: 3 * 50 = 150 лв. 

Обща сума: 500 + 175 + 150 = 825 лв.
Броя на видеокартите е по-голям от броя на процесорите, затова той получава 15% отстъпка от крайната цена: 825 – 15% = 701.25 лв.
701.25 <= 900 
=> парите са му достатъчни 
=> остават 900 – 701.25 = 198.75 лв.

 Вход 2

(["920.45", "3" ,"1", "1" ])  -  Not enough money! You need 3.92 leva more!

Бюджет: 920.45 лв
Сума за видеокарти: 3 * 250 = 750 лв.
Цената за процесор: 35% от 750 = 262.50 лв.
Сума за процесори: 1 * 262.50 = 262.50 лв.

Цената за рам памет: 10% от 750 = 75 лв.
Сума за рам памет: 1 * 75 = 75 лв. 

Обща сума: 750 + 262.50 + 75 = 1087.50 лв.
Броя на видеокартите е по-голям от броя на процесорите, затова той получава 15% отстъпка от крайната цена: 1087.50 – 15% = 924.37 лв.
924.37 > 920.45
=> парите не са му достатъчни 
=> нужни са 924.375  –  920.45 = 3.92 лв.

Тагове:
0
Programming Basics
dimitarglavianov avatar dimitarglavianov 75 Точки

Здравей, имаше проблем с цената на процесорите и в условието за успешна покупка smiley

Така дава 100/100

function shopping(data){
 
    let budget = Number(data[0]);
    let GPUCount = Number(data[1]);
    let CPUCount = Number(data[2]);
    let RAMCount = Number(data[3]);
 
    let GPUPrice = GPUCount * 250;
    let CPUPrice= GPUPrice * 0.35 * CPUCount;
    let RAMPrice = GPUPrice * 0.10 * RAMCount;
 
    let totalPrice = GPUPrice + CPUPrice + RAMPrice; //825
 
    if(GPUCount > CPUCount){
    totalPrice = totalPrice * 0.85;
    }
 
    diff = Math.abs(totalPrice - budget);
 
    if(budget >= totalPrice){
 
        console.log(`You have ${diff.toFixed(2)} leva left!`);
 
    }
    else{
 
        console.log(`Not enough money! You need ${diff.toFixed(2)} leva more!`);
    }
 
 
}

1
BobbyDimitrov avatar BobbyDimitrov 1 Точки

Благодаря Ви много!

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