Задача 04. Food for Pets
Задачата е от:
Programming Basics Online Exam - 28 and 29 March 2020
Това е моето решение:
https://pastebin.com/Us5ZegyL
Дава ми 33/100 и не разбирам защо.
Моля за съдействие.
Задачата е от:
Programming Basics Online Exam - 28 and 29 March 2020
Това е моето решение:
https://pastebin.com/Us5ZegyL
Дава ми 33/100 и не разбирам защо.
Моля за съдействие.
100% 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 counter = 2;
for (let i = 1; i <= days; i++) {
let dogFoot = Number(input[counter++]);
let catFoot = Number(input[counter++]);
sumDogFoot += dogFoot;
sumCatFoot += catFoot;
if (i % 3 == 0) {
let currentSumBisscuits = (dogFoot + catFoot) * 0.10;
sumBisscuits += currentSumBisscuits;
}
}
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.`);
}
За 100/100 заменете:
if (i % 3 === 0){
buiscuits=0.10*(eatenDog+eatenCat);
}
totalB+=buiscuits;
С този код:
if (i % 3 === 0){
totalB+=0.10*(eatenDog+eatenCat);
}
Проблемът е, че не занулявате променливата buiscuits на всяка итерация, а я прибавяте винаги към totalB, което ще доведе до грешен резултат при повече от 3 дни.
Благодаря, но не искам готов код. Искам да знам какво не му е наред на моя код, че не смята правилно във всички случаи.
Освен това такова взимане на индекс с counter и след това инкрементация в скобите на inputa не е било преподавано през текущия курс.