Votre tâche consiste à calculer la racine carrée d'un entier positif sans utiliser d'opérateurs mathématiques pour modifier le nombre, tels que:
- Définition d'une variable (ex. SquareRoot = 5)
- Addition (A + B)
- Soustraction (AB)
- Multiplication (A * B)
- Division (A / B)
- Racines carrées, cubiques, quatrièmes, etc.
- Exposants
Les opérateurs de comparaison (tels que <,>, ==, etc.) ne sont pas considérés comme des "opérateurs mathématiques" aux fins de cette question et sont autorisés tant qu'ils ne modifient pas la valeur d'une variable.
Le seul opérateur que vous pouvez utiliser est ++. Les exceptions suivantes sont en place:
- Si vous le souhaitez, vous pouvez initialiser une variable en la mettant à 0.
- Si votre langue n'inclut pas la syntaxe ++, vous pouvez utiliser une syntaxe équivalente, telle que foo + = 1 ou foo = foo + 1
- La racine carrée doit être calculée à au moins 6 chiffres au-delà de la décimale (la centaine de milliers) et sortie comme un nombre entier de décimales (par exemple, si j'entre 2, elle pourrait apparaître comme 14142135624 ou 1414213 selon l'arrondi) . Arrondir vers le haut ou vers le bas n'est pas important.
Les fonctions définies par l'utilisateur ne sont pas autorisées. De plus, la simulation de fonctions avec goto n'est pas autorisée non plus.
Je suis intéressé de voir ce que tout le monde soumet! Bon codage!
CLARIFICATION
Précisez que ce nombre est un entier positif. Vous êtes invités à créer un code qui ferait n'importe quel nombre mais ce n'est pas nécessaire.
CLARIFICATION # 2
Précisez que les opérateurs de comparaison sont autorisés.
CLARIFICATION # 3
L'addition, la soustraction, la multiplication, la division et les fonctions de modification des nombres ne sont pas autorisées du tout , qu'elles soient enregistrées ou non dans une variable. Je suis désolé que cela invalide quelques réponses existantes, mais je voulais définir ce groupe d'opérateurs avec "changer le nombre" afin d'empêcher les réponses de troll (par exemple, je viens d'utiliser la fonction sqrt (), vous avez seulement interdit l'ajout, multiplication, division et soustraction). Désolé pour la confusion.
CLARIFICATION # 4
Précisez que nous avons besoin d'au moins 5 chiffres. 10 chiffres ont fait fonctionner le code pendant une longue période.
while r*r<n*10e20:r+=1
- assez trivial. Vous pouvez également envisager de réduire la sortie requise à 10 ^ 8 environ. Premièrement, parce que 10 ^ 10 est plus grand que 2 ^ 31, et deuxièmement, parce qu'il faudra un certain temps pour augmenter ce niveau.