logo

Java-program for å finne kvadratroten til et tall uten sqrt-metode

I Java, til finn kvadratroten av et tall er veldig enkelt hvis vi bruker den forhåndsdefinerte metoden. Java Matte klasse gir sqrt() metode for å finne kvadratroten av et tall. I denne delen vil vi lage en Java-program for å finne kvadratroten av et tall uten å bruke sqrt()-metoden . Det er den mest populære spørsmål spurte i Java-intervju .

Hvis kvadratet av et tall er x, vil kvadratroten av det tallet være tallet multiplisert med seg selv. For eksempel er kvadratroten av 625 25. Hvis vi ganger 25 to ganger, får vi kvadratet av tallet. Matematisk er kvadratroten av et tall gitt som:

x=√x

Vi har brukt følgende formel for å finne kvadratroten av et tall.

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

Merk: Det første sqrt-nummeret skal være inndatanummeret/2.

La oss implementere formelen ovenfor i en Java-program og finn kvadratroten.

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

Utgang 1:

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

Utgang 2:

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

La oss se en annen logikk for å finne kvadratroten.

I følgende eksempel har vi brukt følgende prosedyre for å finne kvadratroten.

  • Vi har initialisert en iteratorvariabel i=1 .
  • Sjekk at tallet vi har skrevet inn er en perfekt firkant eller ikke. Hvis kvadratet av i er lik n, i vil være kvadratrotverdien av n.
  • Ellers, finn laveste verdi av i . Husk at kvadratet av jeg må være større enn n . Kvadratroten av et tall ligger mellom i-1 og Jeg . Etter å ha utført trinnene, bruker vi binær søkealgoritme for å finne kvadratroten av et tall opp til n desimaler.
  • Øk variabelen i med 1 .

Binær søkealgoritme

  • Finn mellomverdi av i-1 og i.
  • Finn kvadratet av mellomverdi og sammenligne det med n.
    • Hvis mellomverdi * mellomverdi = n , er mellomverdien kvadratroten av det gitte tallet. Sammenlign kvadratet av mellomverdien med n (opptil n desimaler) hvis forskjellen er liten, vil mellomverdien være kvadratroten av tallet.
    • Hvis mellomverdi * mellomverdi > n , kvadratroten tilhører første halvdel .
    • Hvis mellomverdi * mellomverdi, kvadratroten tilhører andre halvdel .

La oss implementere algoritmen i et Java-program og finne kvadratroten av et tall.

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 } 

Utgang 1:

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

Utgang 2:

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