logo

Java-Programm zum Finden der Quadratwurzel einer Zahl ohne sqrt-Methode

In Java, zu Finden Sie die Quadratwurzel einer Zahl ist sehr einfach, wenn wir die vordefinierte Methode verwenden. Java Mathematik Klasse bietet sqrt() Methode, um die Quadratwurzel einer Zahl zu finden. In diesem Abschnitt erstellen wir eine Java-Programm zum Finden der Quadratwurzel einer Zahl, ohne die Methode sqrt() zu verwenden . Es ist das beliebteste Frage fragte in der Java-Interview .

Wenn das Quadrat einer Zahl x ist, ist die Quadratwurzel dieser Zahl die mit sich selbst multiplizierte Zahl. Beispielsweise ist die Quadratwurzel von 625 25. Wenn wir 25 zweimal multiplizieren, erhalten wir das Quadrat der Zahl. Mathematisch ergibt sich die Quadratwurzel einer Zahl als:

x=√X

Wir haben die folgende Formel verwendet, um die Quadratwurzel einer Zahl zu ermitteln.

Quadratn+1=(QuadratN+(Anzahl/QuadratN))/2.0

Hinweis: Die erste Quadratzahl sollte die Eingabezahl/2 sein.

Lassen Sie uns die obige Formel in a implementieren Java-Programm und finde die Quadratwurzel.

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

Ausgabe 1:

Prolog-Sprache
 Enter a number: 12 The square root of 12 is: 3.4641016151377544 

Ausgabe 2:

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

Sehen wir uns eine andere Logik zum Finden der Quadratwurzel an.

Im folgenden Beispiel haben wir das folgende Verfahren verwendet, um die Quadratwurzel zu ermitteln.

  • Wir haben eine Iteratorvariable initialisiert i=1 .
  • Überprüfen Sie, ob die von uns eingegebene Zahl ein perfektes Quadrat ist oder nicht. Wenn die Das Quadrat von i ist gleich n, i wird der Quadratwurzelwert von n sein.
  • Andernfalls finden Sie die niedrigster Wert von i . Denken Sie daran, dass das Quadrat von i muss größer als n sein . Die Quadratwurzel einer Zahl liegt zwischen i-1 Und ich . Nachdem wir die Schritte ausgeführt haben, verwenden wir die binärer Suchalgorithmus um die Quadratwurzel einer Zahl mit bis zu n Dezimalstellen zu ermitteln.
  • Erhöhen Sie die Variable i um 1 .

Binärer Suchalgorithmus

  • Finden Sie die Mittelwert von i-1 und i.
  • Finden Sie das Quadrat von Mittelwert und vergleiche es mit n.
    • Wenn Mittelwert * Mittelwert = n , der Mittelwert ist die Quadratwurzel der gegebenen Zahl. Vergleichen Sie das Quadrat des Mittelwerts mit n (bis zu n Dezimalstellen). Wenn die Differenz gering ist, ist der Mittelwert die Quadratwurzel der Zahl.
    • Wenn Mittelwert * Mittelwert > n , die Quadratwurzel gehört zu erste Hälfte .
    • Wenn Mittelwert * Mittelwert, die Quadratwurzel gehört zu zweite Hälfte .

Lassen Sie uns den Algorithmus in einem Java-Programm implementieren und die Quadratwurzel einer Zahl ermitteln.

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 } 

Ausgabe 1:

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

Ausgabe 2:

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