1. Problema
Generar números suma-producto utilizando LINQ.
2. Solución
Un número suma-producto es un entero que se obtiene a partir del producto entre la sumatoria y la productoria de los dígitos. Esta definición se puede expresar así:
La variable l indica la cantidad de dígitos en el número; y las variables d con índice i o j indican el enésimo dígito del número n.
3. Código C#
En las líneas 14-26 se define el método de extensión Digitos(); este método se usa para obtener cada uno de los dígitos de un número como una secuencia.
Entre las líneas 1-9 está definido el método Main(); aquí ocurren las siguientes operaciones:
- Línea 3: Se genera una secuencia con valores enteros entre 0 y 1000.
- Línea 4: Se aplica la aplicación filtro Where.
- Línea 5: Para el k número de la secuencia se obtienen sus dígitos.
- Línea 7: Se comprueba el predicado que define un número suma-producto; es decir:
digitos.Sum() * digitos.Aggregate((x, y) => x * y) == kSi el producto entre la sumatoria y la productoria de los l dígitos del k número es igual k, entonces k es un número suma-producto.
4. Literatura & Enlaces
Mukherjee, S (2014). Thinking in LINQ Harnessing the Power of Functional Programming in .NET Applications. United States: Apress.
O
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.