Задача 2
Задача 3
Задача 4
Задача 5
Здравейте,
Желая да споделя личното си впечатление от задачите на изпита. Ето и първата от тях.
Условието на задачата може да изтеглите от тук: 1. Coffee Machine.doc
В началото като прочетох условието и реших че тук ще се наложи да проверявам типа на монетите които имам за рестото и логично ако в машината има единствено монети от 1 лев, машината няма да може да върне ресто от 50 стотинки, поради липса на по-дребни монети.
Затова в началото реших че задачата не е толкова лесна, в последствие видях скорошни решения на задачата със 100 точки оценка и реших че едва ли се иска точно това, оказа се че трябва да се направят прости сметки дали има повече пари в машината от рестото.
Трите случая за отговор на програмата са:
1. Ако дадената сума от клиента е по-голяма или равна на цената, можем да сметнем рестото и ако рестото е по-малко или равно на сумата в машината, тогава може да се върне рестото (тук не е необходимо да се проверяват монетите и дали с тях може да се направи комбинация за да се получи рестото, което описах по-горе).
В този случай отпечатваме Yes, интервал и сумата останала в машината без рестото.
2. Ако дадената сума от клиента е по-малка от цената, тогава отпечатваме More, интервал и разликата от цената и дадената сума.
3. Ако дадената сума от клиента е по-голяма от цената и рестото което трябва да се върне е по-малко от сумата в машината отпечатваме No, интервал и разликата между рестото и сумата в машината.
Ето и моето решение:
using System; class CoffeeVendingMachine { static void Main() { int numOfCoins1 = int.Parse(Console.ReadLine()); int numOfCoins2 = int.Parse(Console.ReadLine()); int numOfCoins3 = int.Parse(Console.ReadLine()); int numOfCoins4 = int.Parse(Console.ReadLine()); int numOfCoins5 = int.Parse(Console.ReadLine()); double machineTotal = 0.05 * numOfCoins1 + 0.1 * numOfCoins2 + 0.2 * numOfCoins3 + 0.5 * numOfCoins4 + 1.0 * numOfCoins5; double amount = double.Parse(Console.ReadLine()); double price = double.Parse(Console.ReadLine()); if (price > amount) { Console.WriteLine("More {0:0.00}", (price - amount)); } else if (machineTotal < amount - price) { Console.WriteLine("No {0:0.00}", (amount - price - machineTotal)); } else { Console.WriteLine("Yes {0:0.00}", (machineTotal - amount + price)); } } }
I have found here much useful information for myself. Many thanks to the editors for the info.
ОтговорИзтриванеCoffee Maker