Чаша с вода
Здравейте,
Къде ми е грешката на задачата?
Всеки офис си има диспенсър за вода. Напишете програма, която отчита дали служител от офиса е успял да напълни чашата си успешно.
Диспенсърът има три бутона :
- Easy - лесен (50 милилитра)
- Medium - среден (100 милилитра)
- Hard - силен (200 милилитра)
Ще получите обемът на чашата и на всеки следващ ред кой бутон е бил натиснат. Ако чашата се напълни или прелее програмата приключва.
Ако чашата прелее отпечатайте колко вода е била излята. При успешно напълване отпечатайте броят на натисканията на бутона.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Water
{
class Program
{
static void Main(string[] args)
{
int cup = int.Parse(Console.ReadLine());
int counter = 0;
int volume = 1;
int overallVolume = 1;
string buttons = Console.ReadLine();
while ((buttons = Console.ReadLine()) != null && overallVolume < cup)
{
switch(buttons)
{
case "Easy":
cup = 50;
break;
case "Medium":
cup = 100;
break;
case "Hard":
cup = 200;
break;
}
overallVolume += volume;
counter++;
}
if (overallVolume > cup)
{
int spiltWater = overallVolume - cup;
Console.WriteLine($"{spiltWater}ml has been spilled.");
}
else
{
Console.WriteLine($"The dispenser has been tapped {counter} times.");
}
}
}
}
Здравей, ето и моето решение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WaterDispenser
{
class Program
{
static void Main(string[] args)
{
int cupVolume = int.Parse(Console.ReadLine());
int volumePoured = 0;
int sum = 0;
int counter = 0;
while (sum < cupVolume)
{
string button = Console.ReadLine();
if (button == "Easy") volumePoured = 50;
else if (button == "Medium") volumePoured = 100;
else if (button == "Hard") volumePoured = 200;
sum += volumePoured;
counter++;
}
if (sum == cupVolume) Console.WriteLine($"The dispenser has been tapped {counter} times.");
else Console.WriteLine($"{sum - cupVolume}ml has been spilled.");
}
}
}