public static void Main()
Console.WriteLine(CalculateTax(600000.0m));
private static decimal CalculateTax(decimal income)
CalculateTaxForBracket(1000000.0m, .30m, ref incomeTax, ref income);
CalculateTaxForBracket(500000.0m, .20m, ref incomeTax, ref income);
CalculateTaxForBracket(250000.0m, .10m, ref incomeTax, ref income);
CalculateTaxForBracket(0.0m, .0m, ref incomeTax, ref income);
private static void CalculateTaxForBracket(decimal taxBraketFloor, decimal taxRate, ref decimal calculatedTaxes, ref decimal remainingIncome)
if (remainingIncome > taxBraketFloor)
calculatedTaxes = calculatedTaxes + (remainingIncome - taxBraketFloor) * taxRate;
remainingIncome = taxBraketFloor;