logo

Programa Java per trobar arrel quadrada d'un nombre sense el mètode sqrt

A Java, a trobar l'arrel quadrada d'un nombre és molt fàcil si utilitzem el mètode predefinit. Java Matemàtiques la classe ofereix quadrada() mètode per trobar l'arrel quadrada d'un nombre. En aquesta secció, crearem un Programa Java per trobar l'arrel quadrada d'un nombre sense utilitzar el mètode sqrt(). . És el més popular pregunta va preguntar a la Entrevista de Java .

Si el quadrat d'un nombre és x, l'arrel quadrada d'aquest nombre serà el nombre multiplicat per si mateix. Per exemple, l'arrel quadrada de 625 és 25. Si multipliquem 25 dues vegades, obtenim el quadrat del nombre. Matemàticament, l'arrel quadrada d'un nombre es dóna com:

x=√x

Hem utilitzat la fórmula següent per trobar l'arrel quadrada d'un nombre.

quadradan+1=(sqrtn+(núm/sqrtn))/2.0

Nota: el primer nombre quadrat ha de ser el número d'entrada/2.

Implementem la fórmula anterior en a Programa Java i troba l'arrel quadrada.

cadena en char java

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; } } 

Sortida 1:

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

Sortida 2:

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

Vegem una altra lògica per trobar l'arrel quadrada.

edat de deol assolellada

En l'exemple següent, hem utilitzat el procediment següent per trobar l'arrel quadrada.

què és jquery
  • Hem inicialitzat una variable iteradora i=1 .
  • Comproveu que el número que hem introduït és un quadrat perfecte o no. Si el quadrat de i és igual a n, i serà el valor de l'arrel quadrada de n.
  • En cas contrari, troba el valor més baix de i . Recordeu que el quadrat de he de ser més gran que n . L'arrel quadrada d'un nombre es troba entre i-1 i i . Després de realitzar els passos, fem servir el algorisme de cerca binària per trobar l'arrel quadrada d'un nombre fins a n decimals.
  • Incrementa la variable i en 1 .

Algorisme de cerca binària

  • Troba el valor mitjà de i-1 i i.
  • Troba el quadrat de valor mitjà i compara-ho amb n.
    • Si valor mitjà * valor mitjà = n , el valor mitjà és l'arrel quadrada del nombre donat. Compareu el quadrat del valor mitjà amb n (fins a n decimals) si la diferència és menor, el valor mitjà serà l'arrel quadrada del nombre.
    • Si valor mitjà * valor mitjà > n , l'arrel quadrada pertany a primera meitat .
    • Si valor mitjà * valor mitjà, l'arrel quadrada pertany a segona meitat .

Implementem l'algorisme en un programa Java i busquem l'arrel quadrada 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 } 

Sortida 1:

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

Sortida 2:

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