Em Java, para encontrar a raiz quadrada de um número é muito fácil se estivermos usando o método pré-definido. Java Matemática classe fornece quadrado() método para encontrar a raiz quadrada de um número. Nesta seção, criaremos um Programa Java para encontrar a raiz quadrada de um número sem usar o método sqrt() . É o mais popular pergunta perguntou no Entrevista Java .
java mvc
Se o quadrado de um número for x, a raiz quadrada desse número será o número multiplicado por ele mesmo. Por exemplo, a raiz quadrada de 625 é 25. Se multiplicarmos 25 duas vezes, obteremos o quadrado do número. Matematicamente, a raiz quadrada de um número é dada como:
x=√xUsamos a seguinte fórmula para encontrar a raiz quadrada de um número.
quadradon+1=(quadradon+(num/quadradon))/2.0Nota: O primeiro número sqrt deve ser o número de entrada/2.
Vamos implementar a fórmula acima em um Programa Java e encontre a raiz quadrada.
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; } }
Saída 1:
local df
Enter a number: 12 The square root of 12 is: 3.4641016151377544
Saída 2:
Enter a number: 25 The square root of 25 is: 5.0
Vamos ver outra lógica para encontrar a raiz quadrada.
No exemplo a seguir, usamos o seguinte procedimento para encontrar a raiz quadrada.
- Inicializamos uma variável iteradora eu=1 .
- Verifique se o número que inserimos é um quadrado perfeito ou não. Se o quadrado de i é igual a n, i será o valor da raiz quadrada de n.
- Caso contrário, encontre o menor valor de i . Lembre-se que o quadrado de devo ser maior que n . A raiz quadrada de um número está entre eu-1 e eu . Depois de executar as etapas, usamos o algoritmo de pesquisa binária para encontrar a raiz quadrada de um número com até n casas decimais.
- Aumente a variável i em 1 .
Algoritmo de pesquisa binária
- Encontre o valor médio de i-1 e eu.
- Encontre o quadrado de valor médio e compare-o com n.
- Se valor médio * valor médio = n , o valor médio é a raiz quadrada do número fornecido. Compare o quadrado do valor médio com n (até n casas decimais). Se a diferença for pequena, o valor médio será a raiz quadrada do número.
- Se valor médio * valor médio > n , a raiz quadrada pertence ao primeira metade .
- Se valor médio * valor médio
, a raiz quadrada pertence ao segundo tempo .
Vamos implementar o algoritmo em um programa Java e encontrar a raiz quadrada de um número.
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 }
Saída 1:
marca d’água no word
Enter a number: 625 The square root of 625.0 is 25.0
Saída 2:
Enter a number: 129 The square root of 129.0 is 11.357816688716412