public int CalculateLetters(int endrange) { int CountLetters = 0; int Remainder = 0; int DivisionResult = 0; if (endrange < 100) { CountLetters = TwentyToNintynineCalCulator.CalculateLetters(endrange); } else { Remainder = endrange % 100; DivisionResult = endrange / 100; var LetterList = SetupHelper.CreateWordDictionaryForOneToNineteen(); var highestIndexInList = DivisionResult - 1; if (highestIndexInList > 0) { for (int counter = 0; counter <= highestIndexInList; counter++) { CountLetters = CountLetters + TwentyToNintynineCalCulator.CalculateLetters(99); if (counter < highestIndexInList) { CountLetters = CountLetters + (100 * (LetterList.ElementAt(counter).Value.Length)); CountLetters = CountLetters + (100 * HUNDRED.Length); CountLetters = CountLetters + (99 * HUNDREDAND.Length); } else { CountLetters = CountLetters + ((Remainder + 1) * (LetterList.ElementAt(highestIndexInList).Value.Length)); CountLetters = CountLetters + ((Remainder + 1) * HUNDRED.Length); CountLetters = CountLetters + (Remainder * HUNDREDAND.Length); CountLetters = CountLetters + TwentyToNintynineCalCulator.CalculateLetters(Remainder); } } } else { CountLetters = CountLetters + TwentyToNintynineCalCulator.CalculateLetters(99); CountLetters = CountLetters + ((Remainder + 1) * (LetterList.ElementAt(highestIndexInList).Value.Length)); CountLetters = CountLetters + ((Remainder + 1) * HUNDRED.Length); CountLetters = CountLetters + (Remainder * HUNDREDAND.Length); CountLetters = CountLetters + TwentyToNintynineCalCulator.CalculateLetters(Remainder); } } return(CountLetters); }
static void Main(string[] args) { Console.WriteLine("Started- Calculating upto 99"); ProcessTwentyToNintynine LetterCalculatorUpToNintyNine = new ProcessTwentyToNintynine(); int output = LetterCalculatorUpToNintyNine.CalculateLetters(99); Console.WriteLine(output); Console.WriteLine("Started- Calculating Greater Than 100 But Less than 1000"); ProcessHundredToLessThanThousand LetterCalculatorUpToNineNintyNine = new ProcessHundredToLessThanThousand(); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(199); Console.WriteLine("For 199 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(299); Console.WriteLine("For 299 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(399); Console.WriteLine("For 399 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(499); Console.WriteLine("For 499 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(599); Console.WriteLine("For 599 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(699); Console.WriteLine("For 699 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(799); Console.WriteLine("For 799 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(899); Console.WriteLine("For 899 :" + output.ToString()); output = LetterCalculatorUpToNineNintyNine.CalculateLetters(999); Console.WriteLine("For 999 :" + output.ToString()); Console.WriteLine("Started- Calculating Upto 1000"); ProcessThousand LetterCalculatorUpToThousand = new ProcessThousand(); output = LetterCalculatorUpToThousand.CalculateLetters(1000); Console.WriteLine("For 1000 :" + output.ToString()); Console.ReadKey(); }