Loading...
MapoBG avatar MapoBG 36 Точки

Търсене на грешка в задача 07. Salary.

Здравейте,

Имам проблем със зад. 07. Salary:

Шеф на компания забелязва че все повече служители прекарват  време в сайтове, които ги разсейват.  

За да предотврати това, той въвежда изненадващи проверки на отворените табове на браузъра на служителите си. Според сайта се налагат различни глоби:

  • "Facebook" -> 150 лв.
  • "Instagram" -> 100 лв.
  • "Reddit" -> 50 лв.

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

  • Брой отворени табове в браузъра n - цяло число в интервала [1...10]
  • Заплата - число в интервала [700...1500]

След това n – на брой пъти се чете име на уебсайт – текст

Ако по време на проверката заплатата стане по-малка или равна на 0 лева, на конзолата се изписва
"You have lost your salary." и програмата приключва. В противен случай след проверката на конзолата се изписва остатъкът от заплатата (да се изпише като цяло число).

 

Judge ми дава 88/100, с грешка на тест 1. Убеден съм, че грешка в логиката на кода няма и реших, че може да е от форматирането - " В противен случай след проверката на конзолата се изписва остатъкът от заплатата (да се изпише като цяло число)."

Пробвах всички възможни варианти за които се сетих - без формат към цяло число, със закръгляне и с изрязване - резултата е все същия - грешка тест 1. 

Също така тествах задачата с If/else и switch, да не би judge да не харесва едно от двете(случвало ми се  е преди) - без разлика.

Кода:

https://pastebin.com/K14MtYUk

Моля за помощ. 

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

Здравейте, просто проверката дали заплатата е 0 или по-малка трябва да е след switch case. Вашият код 100 от 100

function printLine(input) {
    let openedBrowsers = Number(input.shift());
    let salary = Number(input.shift());
 
    let moneyLeft = salary;
    let isOutOfMoney = false;
 
    for (let i = 0; i < openedBrowsers; i++) {
        let currentTab = String(input[i]);
 
        
 
        switch (currentTab) {
            case 'Facebook':
                moneyLeft -= 150;
                break;
            case 'Instagram':
                moneyLeft -= 100;
                break;
            case 'Reddit':
                moneyLeft -= 50;
                break;
        }
      
      if (moneyLeft <= 0) {
            isOutOfMoney = true;
            break;
        }
    }
 
    if (isOutOfMoney) {
        console.log("You have lost your salary.");
    } else {
        console.log(Math.trunc(moneyLeft));
    }
}

0
14/02/2019 15:25:23
MapoBG avatar MapoBG 36 Точки

Благодаря за отговора!

Все пак грешката е логическа :), но пък от друга страна - едно от условията(за формата на крайния резултат) не се взима в предвид от Judge.....

Поздрави,

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