Lorsque vous arrondissez un nombre, si le chiffre suivant est >= 5
vous ajoutez 1. Par exemple:
3.1415926535 rounded to 1dp is 3.1
3.1415926535 rounded to 4dp is 3.1416 <-- Note the 5 changed to 6
3.1415926535 rounded to 5dp is 3.14159
3.1415926535 rounded to 9dp is 3.141592654 <-- Note the 3 changed to 4
Votre défi consiste à recevoir un entier en entrée et à sortir le nombre de décimales devant lequel vous devrez arrondir la racine carrée du nombre - c'est-à-dire le nombre de décimales avant un chiffre qui se >= 5
produit.
L'entier sera compris entre 0 et 100 000 inclus, donc pour le cas de bord de 59752, vous devez prendre en charge 17 décimales (pour vérifier le 17).
Si votre langage de programmation ne peut pas modifier le nombre de décimales, vous pouvez afficher un "?" message à l'utilisateur.
Exemple:
Input Root Output
5 -> 2.23 606797749979 -> 2
41 -> 6.40312423 743284 -> 8 (Largest gap under 100)
596 -> 24.4131112314 674 -> 10 (Largest gap under 1000)
59752 -> 244.44222221212112029 -> 16 (Largest gap under 100000)
Faites ce que vous voulez sur des carrés parfaits.
C'est le code-golf donc le code le plus court gagne.
Pour toute personne intéressée, le nombre 310 617 est le plus grand de moins de 1 000 000 et en a 18 avant d'atteindre un chiffre >= 5
.
Réponses:
CJam, 17 octets
Essayez-le en ligne.
la source
Pyth, 13 octets
Suite de tests
Commencez par
Q
égal à l'entrée. À chaque pas de temps, multipliezQ
par 100, calculé commechr('d')
. Prenez sa racine carrée. Prenez ce mod 10. Si le résultat est supérieur à5
, terminez. Affiche le nombre d'itérations nécessaires pour terminer, indexé 0.En détail:
la source
CJam,
292628 octetsEssayez-le en ligne.
Met un "?" si le nombre n'apparaît pas, il peut être arrondi (carré parfait ou trop long).
la source
Pyth, 22 octets
Explication
Je suis absolument certain que cela peut être joué au golf. Si l'entrée n'a pas un chiffre supérieur à 4, elle imprimera -1. Prend en charge 17dp.
la source
Javascript, 59 octets
Renvoie
?
59752 car JavaScript n'utilise que la double précision.la source
Shell Linux, 52 octets
J'ai essayé une
dc
solution pure , mais j'ai échoué. La précision est réglable (premier chiffre).Comme l'OP spécifie aimablement que "vous pouvez faire ce que vous voulez sur des carrés parfaits", dans ce cas, cette solution génère la précision + 1, dans ce cas 35.
la source
Mathematica 60 octets
Exemple
la source
Apply
.Rubis, 46 octets
Cela peut ne pas être valide, car il ne peut contenir que 16 chiffres.
la source
nil
, car aucun chiffre au-delà de 4 n'est dans la chaîne entière. Cela peut dépendre de la version rubis.