Un número triangular es un número que se puede expresar como la suma de enteros positivos consecutivos, comenzando en 1. También se pueden expresar con la fórmula n(n + 1) / 2, donde nhay algún entero positivo.
La contraparte digital de un número se calcula de la siguiente manera:
- Dividir un número en una matriz de sus dígitos, por ejemplo
613 => [6 1 3] - Para cada número en la matriz, calcule el
nnúmero triangular th;[6 1 3] => [21 1 6] - Suma la matriz resultante;
[21 1 6] => 28
Su tarea es, dado un número entero n, calcular repetidamente nla contraparte digitalangular, hasta que el resultado sea igual a 1, luego generar todos los valores calculados. Puede generar los valores en cualquier orden y con una inclusión opcional del número original al comienzo de la matriz. Este es un código de golf, por lo que gana el código más corto.
Casos de prueba
23 => 9 45 25 18 37 34 16 22 6 21 4 10 1
72 => 31 7 28 39 51 16 22 6 21 4 10 1
55 => 30 6 21 4 10 1
78 => 64 31 7 28 39 51 16 22 6 21 4 10 1
613 => 28 39 51 16 22 6 21 4 10 1
8392 => 90 45 25 18 37 34 16 22 6 21 4 10 1
11111 => 5 15 16 22 6 21 4 10 1
8592025 => 117 30 6 21 4 10 1
999999999 => 405 25 18 37 34 16 22 6 21 4 10 1
141y tiene ndígitos. El valor máximo que puede tener su contraparte digital es 45n, por lo tanto digi-△(x) ≤ 45n < 45(1+log_10(x)), y para x > 141, tenemos 45(1+log_10(x)) < x, digi-△(x) ≤ x-1por lo tanto x > 141, para , y una vez que superamos el 141límite, bueno, probamos la fuerza bruta a través de programas.