Cita:
Iniciado por eferion Otra posible solución al problema de los vampiros.
Visto que mi planteamiento inicial de hacer permutaciones era demasiado lento he cambiado el punto de vista.
Al final, visto lo visto, se parece un poco al resto de soluciones. En mi caso, para llevar el conteo de los dígitos compongo una máscara que me permite saber si los números comparten el mismo grupo de dígitos.
Me has ganado por un cuerpo de ventaja,. Justamente estaba en ello.
Dejo la función que tenía preparada, pero reconozco que te me has adelantado:
Código C++:
Ver originalint SumaDigitos( int num , int suma ) {
const int binario [] = {(int)1e0, (int)1e1, (int)1e2,
(int)1e3, (int)1e4, (int)1e5,
(int)1e6, (int)1e7, (int)1e8,
(int)1e9 };
if ( num ) { suma += (num % 10) * binario [num % 10] ; return SumaDigitos ( num / 10 , suma ) ; }
else return suma ;
}
Enhorabuena, fenómeno.
¡¡¡Saluditos!!!