05. Care of puppy - Exam 28 and 29 March 2020.
Някой да има примерно решение на тази задача ? Аз я реших по няколко начина и не ми принти отговор .
Благодаря.
Някой да има примерно решение на тази задача ? Аз я реших по няколко начина и не ми принти отговор .
Благодаря.
Ако покажете някое от решенията си, ще може да Ви посочим грешките.
Ето примерно решение:
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.`);
}
}
Здравейте приятелю, благодаря, че поставихте нишката, с какво решение отидохте най-накрая?
За разбирането,
Омана Таралингова
Ето и едно решение за C#
using System;
using System.Security.Cryptography;
namespace ConsoleApp12
{
internal class Program
{
static void Main(string[] args)
{
int food = int.Parse(Console.ReadLine());
int foodInGrams = food * 1000;
int totalFood = 0;
string command = Console.ReadLine();
while (command != "Adopted")
{
int foodEaten = int.Parse(command);
totalFood += foodEaten;
command = Console.ReadLine();
}
if (totalFood <= foodInGrams)
{
Console.WriteLine($"Food is enough! Leftovers: {foodInGrams - totalFood} grams.");
}
else
{
Console.WriteLine($"Food is not enough. You need {totalFood - foodInGrams} grams more.");
}
}
}
}
Благодаря :) Ето и едно от моите решения :
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.`);
}
}
@amydarling
В тялото на while цикъла не обновявате стойността на command и в резултат се случва едно от двете неща, според това каква е стойността на command преди влизане в while:
- обработва се само една команда (минава се само веднъж през цикъла), когато command !== "Adopted"
- влизаме в безкраен цикъл, ако първата команда е "Adopted"
За да решите този проблем, стойността на command трябва да се обновява в тялото на whila цикъла за всяка итерация, например:
Много благодаря , сега разбрах вече къде ми куца.