logo

Programa Java para encontrar a raiz quadrada de um número sem método sqrt

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

Usamos a seguinte fórmula para encontrar a raiz quadrada de um número.

quadradon+1=(quadradon+(num/quadradon))/2.0

Nota: 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