k
Suchen Sie bei gegebener Dezimalzahl die kleinste Ganzzahl n
, sodass die Quadratwurzel von n
innerhalb k
einer Ganzzahl liegt. Der Abstand sollte jedoch ungleich Null sein - n
kann kein perfektes Quadrat sein.
Vorausgesetzt k
, eine Dezimalzahl oder ein Bruch (je nachdem, was für Sie einfacher ist), sodass 0 < k < 1
die kleinste positive Ganzzahl ausgegeben wird, n
sodass die Differenz zwischen der Quadratwurzel von n
und der nächsten Ganzzahl zur Quadratwurzel von n
kleiner oder gleich, k
aber ungleich Null ist .
Wenn i
die nächste Ganzzahl zur Quadratwurzel von ist n
, suchen Sie nach der ersten n
Wo 0 < |i - sqrt(n)| <= k
.
Regeln
- Sie können nicht die unzureichende Implementierung von nicht ganzzahligen Zahlen in einer Sprache verwenden, um das Problem zu trivialisieren.
- Andernfalls können Sie davon ausgehen, dass dies
k
beispielsweise bei der Gleitkommarundung keine Probleme verursacht.
Testfälle
.9 > 2
.5 > 2
.4 > 3
.3 > 3
.25 > 5
.2 > 8
.1 > 26
.05 > 101
.03 > 288
.01 > 2501
.005 > 10001
.003 > 27888
.001 > 250001
.0005 > 1000001
.0003 > 2778888
.0001 > 25000001
.0314159 > 255
.00314159 > 25599
.000314159 > 2534463
Kommagetrennte Testfall-Eingaben:
0.9, 0.5, 0.4, 0.3, 0.25, 0.2, 0.1, 0.05, 0.03, 0.01, 0.005, 0.003, 0.001, 0.0005, 0.0003, 0.0001, 0.0314159, 0.00314159, 0.000314159
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.