logo

Java program szám négyzetgyökének megkeresésére sqrt módszer nélkül

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

A 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.0

Megjegyzé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