Loading...
preslavgetov avatar preslavgetov 3 Точки

Dishwasher - какво се случва с counter-a

Здравейте,

Решавам една допълнителна задача от While loops - Dishwasher.

Условие, за който ще го чете - https://softuni.bg/downloads/svn/programming-basics-v4/course-content/course-resources/More%20Exercises/4.%20PB-More-While-Loop-Exercises.docx

https://pastebin.com/bS8dHFra

Това е моят опит за решение, но имам няколко въпроса:

1. Има ли значение дали counter ще бъде инициализиран извън while или вътре в него?

2. Има ли значение къде точно в while го инкрементирам?

Опитвах се да направя стъпките точно както са в задачата, но сметките не излизат както трябва до третото зареждане и не разбирам къде е грешката. Или пък не се смятат правилно съдовете. Има доста решения на тази задача, но повечето си именуват променливите със скандални имена на шльокавица и OCD-to ми ме изкъртва.

Благодаря предварително за каквато и да е помощ!


 

 

Тагове:
0
Programming Basics with C#
kkaraivanov avatar kkaraivanov 486 Точки

Здравей колега. Пействам едно току що сглобено решение, не съм го тествал, но резултатите са правилни. Постарах се да го подредя така, че каунтер-а да е ясен при използването.

using System;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            int bootles = int.Parse(Console.ReadLine());
            int bootlesValue = bootles * 750;
            int plateValue = 5; // 5ml
            int potValue = 15; // 15ml
            int plateCount = 0;
            int potCount= 0;
            int washerCounter = 0;
            string command = null;

            while (bootlesValue > 0 && (command = Console.ReadLine()) != "End")
            {
                washerCounter++;
                int input = int.Parse(command);
                
                if (washerCounter == 3)
                {
                    potCount += input;
                    input *= potValue;
                    bootlesValue -= input;
                    washerCounter = 0;
                }
                else
                {
                    plateCount += input;
                    input *= plateValue;
                    bootlesValue -= input;
                }
            }

            if (bootlesValue >= 0)
            {
                Console.WriteLine("Detergent was enough!");
                Console.WriteLine($"{plateCount} dishes and {potCount} pots were washed.");
                Console.WriteLine($"Leftover detergent {bootlesValue} ml.");
            }
            else
            {
                Console.WriteLine($"Not enough detergent, {Math.Abs(bootlesValue)} ml. more necessary!");
            }
        }
    }
}

 

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