Esta es una solución en el lenguaje C.Sharp de DotNet: