Ihre Aufgabe ist es, Dezimalstellen in die Summe der Quadratwurzeln von ganzen Zahlen umzuwandeln. Das Ergebnis muss eine Genauigkeit von mindestens 6 signifikanten Dezimalstellen haben.
Eingabe :
Eine Zahl, die die Anzahl der Quadratwurzeln angibt, und eine Dezimalzahl, die die ungefähre Anzahl angibt.
Beispiel Eingabe:
2 3.414213562373095
Ausgabe : Ganzzahlen, die durch Leerzeichen getrennt sind und bei Quadratwurzelbildung und Addition ungefähr die ursprüngliche Dezimalstelle darstellen, mit einer Genauigkeit von mindestens 6 signifikanten Dezimalstellen.
Nullen sind in der Lösung nicht zulässig.
Wenn es mehrere Lösungen gibt, müssen Sie nur eine drucken.
Beispielausgabe (in beliebiger Reihenfolge):
4 2
Das funktioniert weil Math.sqrt(4) + Math.sqrt(2) == 3.414213562373095.
Das ist Code Golf. Der kürzeste Code (mit optionalem Bonus) gewinnt!
Es wird immer eine Lösung geben, aber -10, wenn Ihr Programm "Nein" ausgibt, wenn es keine Lösung mit ganzen Zahlen gibt. Außerdem -10, wenn Ihr Programm alle Lösungen (durch Zeilenumbrüche oder Semikolons oder was auch immer getrennt) anstelle von nur einer ausgibt.
Testfälle:
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"]
Und ja, Ihr Programm muss in endlicher Zeit mit endlichem Speicher auf jedem vernünftigen Computer beendet werden. Es kann nicht nur "theoretisch" funktionieren, man muss es auch tatsächlich testen können.
6 7 8zweiten Bonus drucken ?