logo

Programma Java per trovare la radice quadrata di un numero senza metodo sqrt

In Giava, a trovare la radice quadrata di un numero è molto semplice se utilizziamo il metodo predefinito. Giava Matematica la classe fornisce sqrt() Metodo per trovare la radice quadrata di un numero. In questa sezione creeremo un file Programma Java per trovare la radice quadrata di un numero senza utilizzare il metodo sqrt() . È il più popolare domanda chiesto nel Intervista a Java .

Se il quadrato di un numero è x, la radice quadrata di quel numero sarà il numero moltiplicato per se stesso. Ad esempio, la radice quadrata di 625 è 25. Se moltiplichiamo 25 due volte, otteniamo il quadrato del numero. Matematicamente, la radice quadrata di un numero è data come:

x=√X

Abbiamo utilizzato la seguente formula per trovare la radice quadrata di un numero.

mqn+1=(qrtN+(num/quadratoN))/2.0

Nota: il primo numero sqrt dovrebbe essere il numero di input/2.

Implementiamo la formula sopra in a Programma Java e trova la radice quadrata.

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

Uscita 1:

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

Uscita 2:

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

Vediamo un'altra logica per trovare la radice quadrata.

Nell'esempio seguente, abbiamo utilizzato la seguente procedura per trovare la radice quadrata.

  • Abbiamo inizializzato una variabile iteratore io=1 .
  • Controlla che il numero che abbiamo inserito sia un quadrato perfetto o meno. Se la il quadrato di i è uguale a n, i sarà il valore della radice quadrata di n.
  • Altrimenti trova il valore più basso di i . Ricorda che il quadrato di devo essere maggiore di n . La radice quadrata di un numero si trova nel mezzo i-1 E io . Dopo aver eseguito i passaggi, utilizziamo il file algoritmo di ricerca binaria per trovare la radice quadrata di un numero fino a n cifre decimali.
  • Incrementa la variabile i di 1 .

Algoritmo di ricerca binaria

  • Trovare il valore medio di i-1 e i.
  • Trova il quadrato di valore medio e confrontalo con il n.
    • Se valore medio * valore medio = n , il valore medio è la radice quadrata del numero specificato. Confronta il quadrato del valore medio con n (fino a n cifre decimali) se la differenza è minore, il valore medio sarà la radice quadrata del numero.
    • Se valore medio * valore medio > n , la radice quadrata appartiene a prima metà .
    • Se valore medio * valore medio, la radice quadrata appartiene a seconda metà .

Implementiamo l'algoritmo in un programma Java e troviamo la radice quadrata di un numero.

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 } 

Uscita 1:

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

Uscita 2:

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