Su trabajo es convertir los decimales nuevamente en la suma de las raíces cuadradas de los enteros. El resultado debe tener una precisión de al menos 6 dígitos decimales significativos.
Entrada :
Un número que indica el número de raíces cuadradas y un decimal que indica el número a aproximar.
Entrada de ejemplo:
2 3.414213562373095
Salida : enteros separados por espacios que, cuando se enraizan y se suman, tienen aproximadamente el decimal original con una precisión de al menos 6 dígitos decimales significativos.
Los ceros no están permitidos en la solución.
Si hay varias soluciones, solo tiene que imprimir una.
Ejemplo de salida (en cualquier orden):
4 2
Esto funciona porque Math.sqrt(4) + Math.sqrt(2) == 3.414213562373095
.
Este es el código de golf. ¡El código más corto (con bonificación opcional) gana!
Siempre habrá una solución, pero -10 si su programa imprime "No" cuando no hay una solución con enteros. Además, -10 si su programa imprime todas las soluciones (separadas por nuevas líneas o punto y coma o lo que sea) en lugar de solo una.
Casos de prueba:
3 7.923668178593959 --> 6 7 8
2 2.8284271247461903 --> 2 2
5 5.0 --> 1 1 1 1 1
5 13.0 --> 4 4 9 9 9 --> 81 1 1 1 1 --> 36 9 4 1 1 etc. [print any, but print all for the "all solutions bonus"]
Y sí, su programa tiene que terminar en tiempo finito usando memoria finita en cualquier máquina razonable. No solo puede funcionar "en teoría", tienes que ser capaz de probarlo.
6 7 8
segundo bono?