logo

Java-program til at finde kvadratrod af et tal uden sqrt-metode

I Java, til find kvadratroden af ​​et tal er meget let, hvis vi bruger den foruddefinerede metode. Java Matematik klasse giver sqrt() metode til at finde kvadratroden af ​​et tal. I dette afsnit vil vi oprette en Java-program til at finde kvadratroden af ​​et tal uden at bruge sqrt() metoden . Det er det mest populære spørgsmål spurgte i Java interview .

Hvis kvadratet af et tal er x, vil kvadratroden af ​​dette tal være tallet ganget med sig selv. For eksempel er kvadratroden af ​​625 25. Hvis vi gange 25 to gange, får vi kvadratet af tallet. Matematisk er kvadratroden af ​​et tal givet som:

x=√x

Vi har brugt følgende formel til at finde kvadratroden af ​​et tal.

sqrtn+1=(sqrtn+(antal/sqrtn))/2,0

Bemærk: Det første sqrt-nummer skal være inputnummeret/2.

Lad os implementere ovenstående formel i en Java program og find kvadratroden.

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

Output 1:

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

Output 2:

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

Lad os se en anden logik for at finde kvadratroden.

I det følgende eksempel har vi brugt følgende fremgangsmåde til at finde kvadratroden.

  • Vi har initialiseret en iteratorvariabel i=1 .
  • Tjek, at det tal, vi har indtastet, er en perfekt firkant eller ej. Hvis kvadratet af i er lig med n, i vil være kvadratrodsværdien af ​​n.
  • Ellers skal du finde laveste værdi af i . Husk at kvadratet af jeg skal være større end n . Kvadratroden af ​​et tal ligger imellem i-1 og jeg . Efter at have udført trinene, bruger vi binær søgealgoritme at finde kvadratroden af ​​et tal op til n decimaler.
  • Forøg variablen i med 1 .

Binær søgealgoritme

  • Find mellemværdi af i-1 og i.
  • Find kvadratet af mellemværdi og sammenligne det med n.
    • Hvis mellemværdi * mellemværdi = n , er mellemværdien kvadratroden af ​​det givne tal. Sammenlign kvadratet af mellemværdien med n (op til n decimaler), hvis forskellen er mindre, vil mellemværdien være kvadratroden af ​​tallet.
    • Hvis mellemværdi * mellemværdi > n , kvadratroden hører til første halvdel .
    • Hvis mellemværdi * mellemværdi, kvadratroden hører til anden halvdel .

Lad os implementere algoritmen i et Java-program og finde kvadratroden af ​​et tal.

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 } 

Output 1:

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

Output 2:

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