En este desafío, calcularás números a partir de una secuencia curiosa.
Su entrada es un número entero decimal no negativo. Invierta los bits en este entero y luego cuadre el número para obtener la salida requerida.
Al invertir los bits, no debe usar ningún cero a la izquierda en la entrada. Por ejemplo:
26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121
Las primeras 25 entradas / salidas de esta secuencia:
0: 0
1: 1
2: 1
3: 9
4: 1
5: 25
6: 9
7: 49
8: 1
9: 81
10: 25
11: 169
12: 9
13: 121
14: 49
15: 225
16: 1
17: 289
18: 81
19: 625
20: 25
21: 441
22: 169
23: 841
24: 9
Su solución debería funcionar para enteros de tamaño arbitrario. Si su idioma no tiene un método incorporado conveniente para usarlos, implemente su respuesta como si lo tuviera. Luego se le excusa si su respuesta se rompe para grandes números. Sin embargo, no use trucos / límites que solo funcionen para un dominio limitado (como una tabla de búsqueda).
Su puntaje es el número de bytes del código fuente.
-50% de bonificación si nunca convierte el número a / desde binario. Esto no se limita a las funciones integradas, si realiza un bucle sobre el número bit a bit (ya sea cambiando o enmascarando o cualquier otro método), también contará como conversión. No sé si esto es realmente posible, pero da un incentivo para detectar un patrón en la secuencia.
El puntaje más pequeño gana.