Java nyelven, hogy keresse meg egy szám négyzetgyökét nagyon egyszerű, ha az előre meghatározott módszert használjuk. Jáva Math osztály biztosítja sqrt() módszer egy szám négyzetgyökének meghatározására. Ebben a részben létrehozunk a Java program egy szám négyzetgyökének megkeresésére az sqrt() metódus használata nélkül . Ez a legnépszerűbb kérdés kérdezte a Java interjú .
Ha egy szám négyzete x, akkor ennek a számnak a négyzetgyöke a szám önmagával szorozva lesz. Például 625 négyzetgyöke 25. Ha kétszer megszorozzuk 25-öt, akkor a szám négyzetét kapjuk. Matematikailag egy szám négyzetgyökét a következőképpen adjuk meg:
x=√xA következő képletet használtuk egy szám négyzetgyökének meghatározásához.
sqrtn+1=(sqrtn+(szám/négyzetn))/2.0Megjegyzés: Az első sqrt számnak a bemeneti számnak/2-nek kell lennie.
Valósítsuk meg a fenti képletet a Java program és keresse meg a négyzetgyököt.
bharti jha
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; } }
1. kimenet:
Enter a number: 12 The square root of 12 is: 3.4641016151377544
2. kimenet:
Enter a number: 25 The square root of 25 is: 5.0
Nézzünk egy másik logikát a négyzetgyök meghatározásához.
A következő példában a következő eljárást alkalmaztuk a négyzetgyök meghatározásához.
- Inicializáltunk egy iterátor változót i=1 .
- Ellenőrizze, hogy a beírt szám tökéletes négyzet-e vagy sem. Ha a i négyzete egyenlő n-nel, i n négyzetgyök értéke lesz.
- Ellenkező esetben keresse meg a i legkisebb értéke . Ne feledje, hogy a négyzet i-nek nagyobbnak kell lennie n-nél . Egy szám négyzetgyöke között van i-1 és én . A lépések végrehajtása után használjuk a bináris keresési algoritmus hogy megkeressük egy szám négyzetgyökét n tizedesjegyig.
- Növelje meg az i változót 1 .
Bináris keresési algoritmus
- Találd meg középérték i-1 és i.
- Keresse meg a négyzetet középérték és hasonlítsd össze n-nel.
- Ha középérték * középérték = n , a középérték az adott szám négyzetgyöke. Hasonlítsa össze a középérték négyzetét n-nel (legfeljebb n tizedesjegyig), ha a különbség csekély, a középérték a szám négyzetgyöke lesz.
- Ha középérték * középérték > n , a négyzetgyök a első fél .
- Ha középérték * középérték
, a négyzetgyök a második fél .
Valósítsuk meg az algoritmust egy Java programban, és keressük meg egy szám négyzetgyökét.
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 }
1. kimenet:
Enter a number: 625 The square root of 625.0 is 25.0
2. kimenet:
Enter a number: 129 The square root of 129.0 is 11.357816688716412