EX09 - Padawan Equipment - Discussion
Отварям тази тема от философски подбуди. Първоначално събмитнах кода така и получих 90/100, като тест 3 гърмеше. Използвах минималистичен подход и сложих най-ниските възможни типове променливи, тъй като по условие НЕ се очакваше надхвърлящо капацитета им число (дискутираме само тези в червено). Промених ги после и 3-те на на double, но тогава гръмна за време само последният. Работещата комбинация се оказа два дабъла и float за priceOfBelts.
Въпросъ е, защо условието лъже за това че винаги ще дойдат валидни типове данни впосочените гранични стойности? :D
using System;
namespace EX09_PadawanEquipment
{
class CostCalculator
{
static void Main()
{
double money = double.Parse(Console.ReadLine());
int students = int.Parse(Console.ReadLine());
float priceOfStabbers = float.Parse(Console.ReadLine());
float priceOfRobes = float.Parse(Console.ReadLine());
float priceOfBelts = float.Parse(Console.ReadLine());
double tenPercent = Math.Ceiling(students * 0.1);
double totalStabbers = (tenPercent + students) * priceOfStabbers;
double totalRobes = students * priceOfRobes;
double totalBelts = (students - (students / 6)) * priceOfBelts;
double costOfEquipment = totalStabbers + totalRobes + totalBelts;
Console.WriteLine(money >= costOfEquipment ? $"The money is enough - it would cost {costOfEquipment:F2}lv." : $"Ivan Cho will need {((money - costOfEquipment) * -1):F2}lv more.");
}
}
}