logo

Java-ohjelma luvun neliöjuuren löytämiseksi ilman sqrt-menetelmää

Javassa, to etsi luvun neliöjuuri on erittäin helppoa, jos käytämme ennalta määritettyä menetelmää. Java Matematiikka luokka tarjoaa sqrt() tapa löytää luvun neliöjuuri. Tässä osiossa luomme a Java-ohjelma, joka etsii luvun neliöjuuren ilman sqrt()-menetelmää . Se on suosituin kysymys kysyi sisällä Java haastattelu .

Jos luvun neliö on x, luvun neliöjuuri on luku kerrottuna itsellään. Esimerkiksi luvun 625 neliöjuuri on 25. Jos kerromme 25 kaksi kertaa, saadaan luvun neliö. Matemaattisesti luvun neliöjuuri annetaan seuraavasti:

x=√x

Olemme käyttäneet seuraavaa kaavaa luvun neliöjuuren löytämiseen.

sqrtn+1=(neliön+(nm/sqrtn))/2.0

Huomautus: Ensimmäisen sqrt-luvun tulee olla syötenumero/2.

Toteutetaan yllä oleva kaava a:ssa Java ohjelma ja etsi neliöjuuri.

ennakkotilaa puun läpikulku

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

Tulos 1:

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

Tulos 2:

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

Katsotaanpa toinen logiikka neliöjuuren löytämiseksi.

verkon topologia

Seuraavassa esimerkissä olemme käyttäneet seuraavaa menettelyä neliöjuuren löytämiseen.

kaupungit australiassa
  • Olemme alustaneet iteraattorimuuttujan i=1 .
  • Tarkista, onko antamamme numero täydellinen neliö vai ei. Jos i:n neliö on yhtä suuri kuin n, i on n:n neliöjuuriarvo.
  • Muussa tapauksessa etsi i:n pienin arvo . Muista, että neliö minun on oltava suurempi kuin n . Luvun neliöjuuri on välissä i-1 ja i . Kun vaiheet on suoritettu, käytämme binäärihakualgoritmi löytääksesi luvun neliöjuuren n desimaalin tarkkuudella.
  • Kasvata muuttujaa i 1 .

Binäärihakualgoritmi

  • Etsi keskiarvo i-1:stä ja i:stä.
  • Etsi neliö keskiarvo ja vertaa sitä n:ään.
    • Jos keskiarvo * keskiarvo = n , keskiarvo on annetun luvun neliöjuuri. Vertaa keskiarvon neliötä n:ään (enintään n desimaalin tarkkuutta), jos ero on pieni, keskiarvo on luvun neliöjuuri.
    • Jos keskiarvo * keskiarvo > n , neliöjuuri kuuluu ensimmäinen puolikas .
    • Jos keskiarvo * keskiarvo, neliöjuuri kuuluu toinen puoli .

Toteutetaan algoritmi Java-ohjelmassa ja etsitään luvun neliöjuuri.

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 } 

Tulos 1:

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

Tulos 2:

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