logo

Programme Java pour trouver la racine carrée d'un nombre sans méthode sqrt

En Java, pour trouver la racine carrée d'un nombre est très simple si nous utilisons la méthode prédéfinie. Java Mathématiques la classe fournit sqrt() méthode pour trouver la racine carrée d'un nombre. Dans cette section, nous allons créer un Programme Java pour trouver la racine carrée d'un nombre sans utiliser la méthode sqrt() . C'est le plus populaire question demandé dans le Entretien Java .

Si le carré d’un nombre est x, la racine carrée de ce nombre sera le nombre multiplié par lui-même. Par exemple, la racine carrée de 625 est 25. Si on multiplie 25 deux fois, on obtient le carré du nombre. Mathématiquement, la racine carrée d'un nombre s'écrit :

x=√X

Nous avons utilisé la formule suivante pour trouver la racine carrée d’un nombre.

carrén+1=(carrén+(num/carrén))/2.0

Remarque : Le premier numéro sqrt doit être le numéro d'entrée/2.

Implémentons la formule ci-dessus dans un Programme Java et trouvez la racine carrée.

FindSquareRootExample1 .java

 import java.util.Scanner; public class FindSquareRootExample1 { public static void main(String[] args) { System.out.print('Enter a number: '); //creating object of the Scanner class Scanner sc = new Scanner(System.in); //reading a number form the user int n = sc.nextInt(); //calling the method and prints the result System.out.println('The square root of '+ n+ ' is: '+squareRoot(n)); } //user-defined method that contains the logic to find the square root public static double squareRoot(int num) { //temporary variable double t; double sqrtroot=num/2; do { t=sqrtroot; sqrtroot=(t+(num/t))/2; } while((t-sqrtroot)!= 0); return sqrtroot; } } 

Sortie 1 :

 Enter a number: 12 The square root of 12 is: 3.4641016151377544 

Sortie 2 :

 Enter a number: 25 The square root of 25 is: 5.0 

Voyons une autre logique pour trouver la racine carrée.

Dans l’exemple suivant, nous avons utilisé la procédure suivante pour trouver la racine carrée.

  • Nous avons initialisé une variable itératrice je = 1 .
  • Vérifiez que le nombre que nous avons entré est un carré parfait ou non. Si la le carré de i est égal à n, i sera la valeur racine carrée de n.
  • Sinon, trouvez le valeur la plus basse de i . Rappelez-vous que le carré de je dois être supérieur à n . La racine carrée d'un nombre se situe entre je-1 et je . Après avoir effectué les étapes, nous utilisons le algorithme de recherche binaire pour trouver la racine carrée d’un nombre jusqu’à n décimales.
  • Incrémente la variable i de 1 .

Algorithme de recherche binaire

  • Trouvez le valeur moyenne de i-1 et i.
  • Trouver le carré de valeur moyenne et comparez-le avec n.
    • Si valeur moyenne * valeur moyenne = n , la valeur médiane est la racine carrée du nombre donné. Comparez le carré de la valeur moyenne avec n (jusqu'à n décimales) si la différence est mineure, la valeur moyenne sera la racine carrée du nombre.
    • Si valeur moyenne * valeur moyenne > n , la racine carrée appartient à première moitié .
    • Si valeur moyenne * valeur moyenne, la racine carrée appartient à Deuxième partie .

Implémentons l'algorithme dans un programme Java et trouvons la racine carrée d'un nombre.

FindSquareRootExample2.java

 import java.util.Scanner; public class FindSquareRootExample2 { public static void main(String[] args) { double number = 0, sqrt=0; //object of the Scanner class Scanner sc = new Scanner(System.in); System.out.print('Enter a number: '); //reading a double value from the user number = sc.nextDouble(); //method calling sqrt = squareRoot(number); //prints the result System.out.println(The square root of '+number+ ' is ' +sqrt); } //user-defined method to find the square root of a number private static double squareRoot(double number) { //iterator variable int i = 1; while(true) { //for perfect square numbers if(i*i == number) return i; //for not perfect square numbers else if(i*i > number) //returns the value calculated by the method decimalSqrt() return decimalSqrt(number,i-1,i); //increments the variable i by 1 i++; } } // recursive method to find the square root of a number up to 7 decimal places private static double decimalSqrt(double number, double i, double j) //calculates the middle of i and j double midvalue = (i+j)/2; //finds the square of the midvalue double square = midvalue * midvalue; //compares the midvalue with square up to n decimal places if(square==number } 

Sortie 1 :

 Enter a number: 625 The square root of 625.0 is 25.0 

Sortie 2 :

 Enter a number: 129 The square root of 129.0 is 11.357816688716412