Ya hemos definido un número plegable aquí .
Pero ahora vamos a definir un Número Super Plegable. Un número Super Plegable es un número que, si se pliega suficientes veces, eventualmente alcanzará uno menos que una potencia de dos. El método de plegado es ligeramente diferente al de la pregunta de número de plegado.
El algoritmo de plegado es el siguiente:
Toma la representación binaria
por ejemplo 5882
1011011111010
Se derramó en tres particiones. Primera mitad, última mitad y medio dígito (si tiene un número impar de dígitos)
101101 1 111010
Si el dígito del medio es cero, este número no se puede plegar
Invierta la segunda mitad y superpuesta en la primera mitad
010111 101101
Agrega los dígitos en su lugar
111212
- Si hay 2 en el resultado, el número no se puede plegar; de lo contrario, el nuevo número es el resultado del algoritmo de plegado.
Un número es un número Super Plegable si se puede plegar en una cadena continua de unos. (Todos los números plegables también son números súper plegables)
Su tarea es escribir código que tome un número y genere un valor verdadero si el número es un número Super Plegable y falso de lo contrario. Se le puntuará según el tamaño de su programa.
Ejemplos
5200
Convierte a binario:
1010001010000
Partir a la mitad:
101000 1 010000
El medio es uno, así que continuamos Superponiendo las mitades:
000010
101000
Los agregó:
101010
No hay dos, así que continuamos Split por la mitad:
101 010
Doblez:
010
101
111
El resultado es 111
(7 en decimal), por lo que este es un Número Super Plegable.
Casos de prueba
Los primeros 100 números super plegables son:
[1, 2, 3, 6, 7, 8, 10, 12, 15, 20, 22, 28, 31, 34, 38, 42, 48, 52, 56, 63, 74, 78, 90, 104, 108, 120, 127, 128, 130, 132, 142, 150, 160, 170, 178, 192, 204, 212, 232, 240, 255, 272, 274, 276, 286, 310, 336, 346, 370, 400, 412, 436, 472, 496, 511, 516, 518, 524, 542, 558, 580, 598, 614, 640, 642, 648, 666, 682, 704, 722, 738, 772, 796, 812, 852, 868, 896, 920, 936, 976, 992, 1023, 1060, 1062, 1068, 1086, 1134, 1188, 1206, 1254, 1312, 1314, 1320, 1338, 1386, 1440, 1458, 1506, 1572, 1596]
3
colarse en los casos de prueba? No puedo ver cómo se puede plegar, ya que se divide1 1
, dando inmediatamente un2
. ¿O estás diciendo que doblarlo cero veces también cuenta?