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=√xOlemme käyttäneet seuraavaa kaavaa luvun neliöjuuren löytämiseen.
sqrtn+1=(neliön+(nm/sqrtn))/2.0Huomautus: 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