Loading...
twinsdz avatar twinsdz 16 Точки

Какво забравям да проверя?

Здравейте, 

Може ли някой да ми помогне? Става дума за задача Food for Pets от изпита на 28 и 29 Март 2020.  https://judge.softuni.bg/Contests/Practice/Index/2275#6

Във VS Code ми излиза всико вярно, но в Judge ми дава 77точки. Гърмят два три теста, на които не мога да видя входните данни.

Това е моето решение

https://pastebin.com/CFjXQWwz

 

Благодаря предварително.

Тагове:
0
Programming Basics with JavaScript 12/12/2020 19:30:33
Axiomatik avatar Axiomatik 2422 Точки

The solution in itself was correct, but some errors were probably caused by the multiple break-conditions that you have set up inside of the for-loop, such as:

        if (days <= 0) {
            break;
        }

OR

        if (totalEatenFoot >= totalFoot) {
            break;
        }


Keep your code as simple as possible to allow for faster analysis when submitting exercises during the exam, having a separate dayCount is not necessary when you can use i from the for-loop. Also, calculate the final food amount once the loop has been terminated, since it is not needed to calculate it anew with each loop iteration.

Best,

Code:

function footFotPets(input) {
    let days = Number(input[0]);
    let totalFoot = Number(input[1]);
    let sumDogFoot = 0;
    let sumCatFoot = 0;
    let totalEatenFoot = 0;
    let totalPercent = 0;
    let sumBisscuits = 0;
    let totalDogPercents = 0;
    let totalCatPercents = 0;
    // let dayCount = 0;
    let counter = 2;

    // for (let i = 2; i < input.length; i++) {
    for (let i = 1; i <= days; i++) {

        // if (days <= 0) {
        //     break;
        // }

        let dogFoot = Number(input[counter++]);
        let catFoot = Number(input[counter++]);
        // dayCount++;

        sumDogFoot += dogFoot;
        sumCatFoot += catFoot;
        // totalEatenFoot = sumDogFoot + sumCatFoot;

        // if (totalEatenFoot >= totalFoot) {
        //     break;
        // }

        // if (dayCount % 3 == 0) {
        if (i % 3 == 0) {
            let currentSumBisscuits = (dogFoot + catFoot) * 0.10;
            sumBisscuits += currentSumBisscuits;
        }


        // if (dayCount >= days) {
        //     break;
        // }
    }

    totalEatenFoot = sumDogFoot + sumCatFoot;
    totalDogPercents = (sumDogFoot / totalEatenFoot) * 100;
    totalCatPercents = (sumCatFoot / totalEatenFoot) * 100;
    totalPercent = (totalEatenFoot / totalFoot) * 100;

    console.log(`Total eaten biscuits: ${Math.round(sumBisscuits)}gr.`);
    console.log(`${totalPercent.toFixed(2)}% of the food has been eaten.`);
    console.log(`${totalDogPercents.toFixed(2)}% eaten from the dog.`);
    console.log(`${totalCatPercents.toFixed(2)}% eaten from the cat.`);
}

 

0
twinsdz avatar twinsdz 16 Точки

Много благодаря за бързия отговор.

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