logo

Java program za traženje kvadratnog korijena broja bez sqrt metode

U Javi, do pronaći kvadratni korijen broja je vrlo jednostavno ako koristimo unaprijed definiranu metodu. Java matematika klasa pruža sqrt() metoda pronalaženja kvadratnog korijena broja. U ovom odjeljku izradit ćemo a Java program za pronalaženje kvadratnog korijena broja bez korištenja metode sqrt(). . Najpopularniji je pitanje pitao u Java intervju .

za petlje java

Ako je kvadrat broja x, kvadratni korijen tog broja bit će broj pomnožen sam sa sobom. Na primjer, kvadratni korijen od 625 je 25. Ako 25 pomnožimo dva puta, dobit ćemo kvadrat broja. Matematički, kvadratni korijen broja je dan kao:

x=√x

Koristili smo sljedeću formulu da pronađemo kvadratni korijen broja.

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

Napomena: Prvi sqrt broj treba biti ulazni broj/2.

Implementirajmo gornju formulu u a Java program i pronađite kvadratni korijen.

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

Izlaz 1:

ponavljanje karte java
 Enter a number: 12 The square root of 12 is: 3.4641016151377544 

Izlaz 2:

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

Pogledajmo još jednu logiku za iznalaženje kvadratnog korijena.

U sljedećem primjeru upotrijebili smo sljedeću proceduru za iznalaženje kvadratnog korijena.

  • Inicijalizirali smo varijablu iteratora i=1 .
  • Provjerite je li broj koji smo unijeli potpun kvadrat ili ne. Ako je kvadrat od i je jednak n, i bit će vrijednost kvadratnog korijena od n.
  • U suprotnom pronađite najniža vrijednost i . Zapamtite da kvadrat od i mora biti veći od n . Kvadratni korijen broja nalazi se između i-1 i i . Nakon izvođenja koraka koristimo algoritam binarnog pretraživanja pronaći kvadratni korijen broja do n decimalnih mjesta.
  • Povećajte varijablu i za 1 .

Algoritam binarnog pretraživanja

  • Naći srednja vrijednost od i-1 i i.
  • Pronađite kvadrat od srednja vrijednost i usporedite ga s n.
    • Ako srednja vrijednost * srednja vrijednost = n , srednja vrijednost je kvadratni korijen zadanog broja. Usporedite kvadrat srednje vrijednosti s n (do n decimalnih mjesta) ako je razlika mala, srednja vrijednost bit će kvadratni korijen broja.
    • Ako srednja vrijednost * srednja vrijednost > n , kvadratni korijen pripada prvo poluvrijeme .
    • Ako srednja vrijednost * srednja vrijednost, kvadratni korijen pripada druga polovica .

Implementirajmo algoritam u Java program i pronađimo kvadratni korijen broja.

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 } 

Izlaz 1:

sql odaberite iz više tablica
 Enter a number: 625 The square root of 625.0 is 25.0 

Izlaz 2:

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