Votre travail consiste à reconvertir les décimales en la somme des racines carrées d'entiers. Le résultat doit avoir une précision d'au moins 6 chiffres décimaux significatifs.
Contribution :
Un nombre indiquant le nombre de racines carrées et une décimale indiquant le nombre à approximer.
Exemple d'entrée:
2 3.414213562373095
Sortie : Entiers séparés par des espaces qui, lorsqu'ils sont enracinés au carré et ajoutés, ont approximativement la décimale d'origine précise à au moins 6 chiffres décimaux significatifs.
Les zéros ne sont pas autorisés dans la solution.
S'il existe plusieurs solutions, il vous suffit d'en imprimer une.
Exemple de sortie (dans n'importe quel ordre):
4 2
Cela fonctionne parce que Math.sqrt(4) + Math.sqrt(2) == 3.414213562373095
.
C'est le golf de code. Le code le plus court (avec bonus en option) gagne!
Il y aura toujours une solution mais -10 si votre programme affiche "Non" quand il n'y a pas de solution avec des entiers. De plus, -10 si votre programme imprime toutes les solutions (séparées par des retours à la ligne ou des points-virgules ou autre) au lieu d'une seule.
Cas de test:
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"]
Et oui, votre programme doit se terminer en temps fini en utilisant la mémoire finie sur n'importe quelle machine raisonnable. Cela ne peut pas simplement fonctionner "en théorie", vous devez pouvoir le tester.
6 7 8
pour le deuxième bonus?