logo

Java-program för att hitta kvadratroten av ett tal utan sqrt-metod

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=√x

Vi har använt följande formel för att hitta kvadratroten ur ett tal.

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

Obs: 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