V Javě, do najít druhou odmocninu čísla je velmi snadné, pokud používáme předdefinovanou metodu. Jáva Matematika třída poskytuje sqrt() metoda k nalezení druhé odmocniny čísla. V této části vytvoříme a Java program pro nalezení druhé odmocniny čísla bez použití metody sqrt(). . Je nejoblíbenější otázka zeptal se v Java rozhovor .
Pokud je druhá mocnina čísla x, druhá odmocnina tohoto čísla bude číslo vynásobené samo sebou. Například druhá odmocnina z 625 je 25. Pokud vynásobíme 25 dvakrát, dostaneme druhou mocninu čísla. Matematicky je druhá odmocnina čísla dána jako:
x=√XK nalezení druhé odmocniny čísla jsme použili následující vzorec.
metody java arraylistsqrtn+1=(sqrtn+(počet/čtvrn))/2,0
Poznámka: První číslo sqrt by mělo být vstupní číslo/2.
Implementujme výše uvedený vzorec v a Java program a najděte druhou odmocninu.
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; } }
Výstup 1:
Enter a number: 12 The square root of 12 is: 3.4641016151377544
Výstup 2:
Enter a number: 25 The square root of 25 is: 5.0
Podívejme se na další logiku, jak najít druhou odmocninu.
V následujícím příkladu jsme použili následující postup k nalezení druhé odmocniny.
- Inicializovali jsme proměnnou iterátoru i=1 .
- Zkontrolujte, zda je zadané číslo dokonalé nebo ne. Pokud druhá mocnina i se rovná n, i bude odmocnina z n.
- V opačném případě najděte nejnižší hodnota i . Pamatujte, že čtverec i musí být větší než n . Druhá odmocnina čísla leží mezi i-1 a i . Po provedení kroků použijeme binární vyhledávací algoritmus najít druhou odmocninu čísla až na n desetinných míst.
- Zvyšte proměnnou i o 1 .
Binární vyhledávací algoritmus
- Najít střední hodnota z i-1 a i.
- Najděte čtverec střední hodnota a porovnejte to s n.
- Li střední hodnota * střední hodnota = n , střední hodnota je druhá odmocnina daného čísla. Porovnejte druhou mocninu střední hodnoty s n (až n desetinných míst), pokud je rozdíl menší, bude střední hodnota druhou odmocninou čísla.
- Li střední hodnota * střední hodnota > n , druhá odmocnina patří k první polovina .
- Li střední hodnota * střední hodnota
, druhá odmocnina patří k druhá polovina .
Pojďme implementovat algoritmus v programu Java a najít druhou odmocninu čísla.
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 }
Výstup 1:
jarní mrak
Enter a number: 625 The square root of 625.0 is 25.0
Výstup 2:
Enter a number: 129 The square root of 129.0 is 11.357816688716412