Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created February 25, 2018 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/496738543a2085499808aaf6203d1101 to your computer and use it in GitHub Desktop.
Save Fhernd/496738543a2085499808aaf6203d1101 to your computer and use it in GitHub Desktop.
Generación de números Armstrong en C# - LINQ.
public static class ExtractorDigitos
{
// Método de extensión para extraer los digitos de un número>
public static IEnumerable<int> Digitos(this int numero)
{
List<char> caracteres = new List<char>() {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
List<int> digitos = new List<int>();
foreach(char caracter in numero.ToString())
{
digitos.Add(caracteres.IndexOf(caracter));
}
return digitos.AsEnumerable();
}
}
void Main()
{
Enumerable.Range(0, 1000)
.Where(k => k.Digitos().Select(x => x * x * x).Sum() == k)
.Dump("Números de Armstrong entre 0 y 1000");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment