Подготовка за изпит: 6 задача "Коледна украса" - помощ
може ли някои да обясни как е решил задачата
може ли някои да обясни как е решил задачата
Здравей,
Можеш да видиш подробно обяснена задачата в самия код (C#) по-долу:
{
            //Input - четем два входа:
            int budget = int.Parse(Console.ReadLine()); //бюджета на семейство Иванови
            string command = Console.ReadLine(); // първият предмет от украсата
            //Logic:
            int currentItemASCISum = 0; // създаваме променлива, която ще пази АСКИ стойността на предметите от украсата, която първоначално е = 0
            while (command != "Stop") // създаваме цикъл, при който докато получим команда стоп четем нови предмети за украса
            {
                for (int i = 0; i < command.Length; i++) // създаваме втори цикъл  в който четем дължината на предмета, или колко на брой символи/букви има в думата, този цикъл минава през всички символи, букви за да можем да сумираме стойноста или цената която ще струва
                {
                    int currentItemASCI = command[i]; // тук преобразуваме съответната буква в аски стойността й, т.е. от 'а' става 97
                    currentItemASCISum += currentItemASCI; // тук натрупваме стойността от всички символи/букви
                }
                if (currentItemASCISum <= budget) // тук проверяваме дали имаме достатъчно бюдбет да купим този предмет
                {
                    Console.WriteLine("Item successfully purchased!"); // щом имаме, отпечатваме покупката на всеки предмет
                    budget -= currentItemASCISum; // и след това вадим сумата на този предмет от целия бюджет, и така при всяко завъртане за всеки нов предмет докато не свърши бюджетът
                }
                else if (currentItemASCISum > budget) // тук казваме че ако бюджетът не ни стига, вече е свършил или е не достига
                {
                    Console.WriteLine("Not enough money!"); // отпечатваме че няма пари
                    return; // и приключваме с програмата
                }
                currentItemASCISum = 0; // тук нулираме аски стойността от всеки предмет, за да може отново да започне от 0 за всеки следващ.
                command = Console.ReadLine(); // тук четем следващия предмет от украсата и така докато не свърши бюджетът
            }
            Console.WriteLine($"Money left: {budget}"); // ако сме подали команда "Stop" преди да свърши бюджетът, сме излезнали от цикъла и отпечатваме колко пари остават.