Описание
Кафе-машината в Академия Телерик не работи правилно. Модулът за връщане на ресто на машината е създава проблеми. Персоналът вече е повикал техник, но той се намира в едно от стотиците задръствания в центъра на София. Понеже е изпитен ден, дълга опашка от „девелъпъри“ с кръвожадни погледи чака за кафе. Задачата ти е да помогнеш за временното поправяне на машината, преди пристигането на техника, за да успокоиш програмистите.
Решение
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
namespace TelerikExamples { | |
class CoffeeVendingMachine { | |
static void Main() { | |
short i; | |
short j; | |
short[] coinsNumber = new short[5]; | |
decimal[] coinsValue = { | |
0.05 M, | |
0.10 M, | |
0.20 M, | |
0.5 M, | |
1.00 M | |
}; | |
decimal totalMoney = 0.00 M; | |
for (i = 0; i < 5; i++) { | |
coinsNumber[i] = short.Parse(Console.ReadLine()); | |
totalMoney += coinsNumber[i] * coinsValue[i]; | |
} | |
decimal givenAmount = decimal.Parse(Console.ReadLine()); | |
decimal itemPrice = decimal.Parse(Console.ReadLine()); | |
if (givenAmount < itemPrice) { | |
Console.WriteLine("More {0:F2}", itemPrice - givenAmount); | |
} else { | |
if (totalMoney < (givenAmount - itemPrice)) { | |
Console.WriteLine("No {0:F2}", givenAmount - itemPrice - totalMoney); | |
} else { | |
decimal change = givenAmount - itemPrice; | |
decimal availableMoney = totalMoney - change; | |
for (i = 4; i >= 0; i--) { | |
for (j = 0; j < coinsNumber[i]; j++) { | |
change -= coinsValue[i]; | |
if (change < 0) { | |
change += coinsValue[i]; | |
break; | |
} else if (change == 0) { | |
break; | |
} | |
} | |
if (change == 0) { | |
break; | |
} | |
} | |
if (change == 0) { | |
Console.WriteLine("Yes {0:F2}", availableMoney); | |
} | |
} | |
} | |
} | |
} | |
} |