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=√xVi har brugt følgende formel til at finde kvadratroden af et tal.
sqrtn+1=(sqrtn+(antal/sqrtn))/2,0Bemæ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