Софтуерно Инженерство
Loading...
+ Нов въпрос
MartinBG avatar MartinBG 2103 Точки

Ако покажете някое от решенията си, ще може да Ви посочим грешките.

 

Ето примерно решение:

function solve(input) {
  let remainingFood = Number(input.shift()) * 1000;

  let command;
  while ((command = input.shift()) !== 'Adopted') {
    let eaten = Number(command);
    remainingFood -= eaten;
  }
  if (remainingFood >= 0) {
    console.log(`Food is enough! Leftovers: ${remainingFood} grams.`);
  } else {
    console.log(`Food is not enough. You need ${-remainingFood} grams more.`);
  }
}

 

0
amydarling avatar amydarling 9 Точки

Благодаря :) Ето и едно от моите решения :

function puppyCare(input){

    let allFoodHave = Number(input.shift());

    let allGramFood = allFoodHave * 1000;

    

    let eatenFood = 0;

    let totalFood= 0;

    let command = input.shift();

 

    while(command !== "Adopted"){

        eatenFood = input.shift();

        eatenFood++;

        totalFood += eatenFood;

    }

    if (totalFood > allGramFood){

        console.log(`Food is not enough. You need ${totalFood -  allGramFood} grams more.`);

    }else if ( totalFood < allGramFood){

        console.log(`Food is enough! Leftovers: ${allGramFood - totalFood} grams.`);

    }

 

}

1
MartinBG avatar MartinBG 2103 Точки

@amydarling

В тялото на while цикъла не обновявате стойността на command и в резултат се случва едно от двете неща, според това каква е стойността на command преди влизане в while:

- обработва се само една команда (минава се само веднъж през цикъла), когато command !== "Adopted"

- влизаме в безкраен цикъл, ако първата команда е "Adopted"

За да решите този проблем, стойността на command трябва да се обновява в тялото на whila цикъла за всяка итерация, например:

    let command = input.shift();

    while(command !== "Adopted"){
        eatenFood = input.shift();
        eatenFood++;
        totalFood += eatenFood;
        command = input.shift(); // зареждаме следващата команда
    }

 

0
amydarling avatar amydarling 9 Точки

Много благодаря , сега разбрах вече къде ми куца. 

1
narax69278 avatar narax69278 1 Точки

Здравейте приятелю, благодаря, че поставихте нишката, с какво решение отидохте най-накрая?

 

За разбирането,

Омана Таралингова

0
1
yocalee avatar yocalee 2 Точки

Привет!

Решението ми е на Java, но мисля, че ще схванеш логиката : ) 

https://pastebin.com/FEe5CuND

0