V Javi, do poiščite kvadratni koren števila je zelo enostavno, če uporabljamo vnaprej določeno metodo. Java matematika razred zagotavlja sqrt() metoda za iskanje kvadratnega korena števila. V tem razdelku bomo ustvarili a Program Java za iskanje kvadratnega korena števila brez uporabe metode sqrt(). . Je najbolj priljubljena vprašanje vprašal v Java intervju .
Če je kvadrat števila x, bo kvadratni koren tega števila število, pomnoženo s samim seboj. Na primer, kvadratni koren iz 625 je 25. Če 25 pomnožimo dvakrat, dobimo kvadrat števila. Matematično je kvadratni koren števila podan kot:
pokritost izjavex=√x
Za iskanje kvadratnega korena števila smo uporabili naslednjo formulo.
sqrtn+1=(sqrtn+(št./sqrtn))/2,0Opomba: prva sqrt številka mora biti vhodna številka/2.
Implementirajmo zgornjo formulo v a Java program in poiščite kvadratni koren.
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; } }
Izhod 1:
Enter a number: 12 The square root of 12 is: 3.4641016151377544
Rezultat 2:
Enter a number: 25 The square root of 25 is: 5.0
Poglejmo še eno logiko za iskanje kvadratnega korena.
oddano v sql
V naslednjem primeru smo za iskanje kvadratnega korena uporabili naslednji postopek.
- Inicializirali smo spremenljivko iteratorja i=1 .
- Preverite, ali je število, ki smo ga vnesli, popoln kvadrat ali ne. Če je kvadrat i je enak n, i bo vrednost kvadratnega korena n.
- V nasprotnem primeru poiščite najnižja vrednost i . Ne pozabite, da kvadrat i mora biti večji od n . Kvadratni koren števila leži med i-1 in jaz . Po izvedbi korakov uporabimo binarni iskalni algoritem najti kvadratni koren števila do n decimalnih mest.
- Povečajte spremenljivko i za 1 .
Algoritem binarnega iskanja
- Poišči srednja vrednost od i-1 in i.
- Poiščite kvadrat srednja vrednost in ga primerjaj z n.
- če srednja vrednost * srednja vrednost = n , je srednja vrednost kvadratni koren danega števila. Primerjajte kvadrat srednje vrednosti z n (do n decimalnih mest); če je razlika majhna, bo srednja vrednost kvadratni koren števila.
- če srednja vrednost * srednja vrednost > n , kvadratni koren pripada prvi polčas .
- če srednja vrednost * srednja vrednost
, kvadratni koren pripada druga polovica .
Implementirajmo algoritem v program Java in poiščimo kvadratni koren števila.
FindSquareRootExample2.java
25 c do k
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 }
Izhod 1:
Enter a number: 625 The square root of 625.0 is 25.0
Rezultat 2:
Enter a number: 129 The square root of 129.0 is 11.357816688716412