I Java, till hitta kvadratroten ur ett tal är mycket lätt om vi använder den fördefinierade metoden. Java Matematik klass ger sqrt() metod för att hitta kvadratroten ur ett tal. I det här avsnittet kommer vi att skapa en Java-program för att hitta kvadratroten ur ett tal utan att använda metoden sqrt(). . Det är det mest populära fråga frågade i Java intervju .
Om kvadraten av ett tal är x, blir kvadratroten av det talet talet multiplicerat med sig självt. Till exempel är kvadratroten ur 625 25. Om vi multiplicerar 25 två gånger får vi kvadraten av talet. Matematiskt ges kvadratroten ur ett tal som:
x=√xVi har använt följande formel för att hitta kvadratroten ur ett tal.
sqrtn+1=(sqrtn+(antal/sqrtn))/2,0Obs: Det första sqrt-numret ska vara inmatningsnumret/2.
Låt oss implementera ovanstående formel i en Java-program och hitta kvadratroten.
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; } }
Utgång 1:
skal sortera
Enter a number: 12 The square root of 12 is: 3.4641016151377544
Utgång 2:
Enter a number: 25 The square root of 25 is: 5.0
Låt oss se en annan logik för att hitta kvadratroten.
I följande exempel har vi använt följande procedur för att hitta kvadratroten.
- Vi har initierat en iteratorvariabel i=1 .
- Kontrollera att numret som vi har angett är en perfekt ruta eller inte. Om kvadraten av i är lika med n, i kommer att vara kvadratroten av n.
- Annars, hitta lägsta värdet av i . Kom ihåg att kvadraten på jag måste vara större än n . Kvadratroten ur ett tal ligger mellan i-1 och i . Efter att ha utfört stegen använder vi binär sökalgoritm för att hitta kvadratroten ur ett tal upp till n decimaler.
- Öka variabeln i med 1 .
Binär sökalgoritm
- Hitta mellanvärde av i-1 och i.
- Hitta kvadraten på mellanvärde och jämför det med n.
- Om mellanvärde * mellanvärde = n , är mellanvärdet kvadratroten av det givna talet. Jämför kvadraten av mellanvärdet med n (upp till n decimaler) om skillnaden är mindre, kommer mellanvärdet att vara kvadratroten ur talet.
- Om mellanvärde * mellanvärde > n , kvadratroten tillhör första halvan .
- Om mellanvärde * mellanvärde
, kvadratroten tillhör andra halvan .
Låt oss implementera algoritmen i ett Java-program och hitta kvadratroten ur ett 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 }
Utgång 1:
listar java
Enter a number: 625 The square root of 625.0 is 25.0
Utgång 2:
Enter a number: 129 The square root of 129.0 is 11.357816688716412