Loading...
Saraalkadi avatar Saraalkadi 28 Точки

01. Passion Days - Runtime error в Judge?

Задача 01. Дни за страстно пазаруване от 9.2.Problems for Champions - Part II от книгата JS Basics. Във VS-Code изходът е правилен, но в Judge дава Runtime error. Къде може да е грешката? Благодаря.

https://pastebin.com/h7zz0wbF
https://judge.softuni.org/Contests/Practice/Index/942#0
https://js-book.softuni.bg/chapter-09-problems-for-champions-part-2.html

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

Runtime error is triggered since Judge is expecting an array of arguments. Use console.log command in your submit to see the kind of input your program is receiving.

Still your code gives only 90%. Check out this earlier forum-discussion to find out where the last 10% are =>

https://softuni.bg/forum/28839/9-2-passion-days-zadachi-za-shampioni-javascript

;-)

 

Refactored code (90/100):

// function passionDays(shoppingMoney, commands) {
function passionDays(commands) {
    shoppingMoney = Number(commands[0]);
    let i = 1;
    let purchases = 0;
    let command = commands[i];

    while (command !== 'mall.Enter') {
        i++;
        command = commands[i];
    }
    
    command = commands[++i];

    while (command !== 'mall.Exit') {
        for (let j = 0; j < command.length; j++) {
            const action = command[j];

            if (action >= 'A' && action <= 'Z') {
                let price = action.charCodeAt() * 0.5;

                if (shoppingMoney < price) {
                    continue;
                }

                shoppingMoney -= price;
                purchases++;

            } else if (action >= 'a' && action <= 'z') {
                let price = action.charCodeAt() * 0.3;

                if (shoppingMoney < price) {
                    continue;
                }

                shoppingMoney -= price;
                purchases++;

            } else if (action == '%') {
                if (shoppingMoney > 0) {
                    shoppingMoney /= 2;
                    purchases++;
                }

            } else if (action == '*') {
                shoppingMoney += 10;

            } else {
                let price = action.charCodeAt();

                if (shoppingMoney < price) {
                    continue;
                }

                shoppingMoney -= price;
                purchases++;
            }
        }

        i++;
        command = commands[i];
    }

    if (purchases === 0) {
        console.log(`No purchases. Money left: ${shoppingMoney.toFixed(2)} lv.`);
    } else {
        console.log(`${purchases} purchases. Money left: ${shoppingMoney.toFixed(2)} lv.`);
    }
}

 

0
16/03/2022 14:00:39
Saraalkadi avatar Saraalkadi 28 Точки

Мерси :) 

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