Algoritmo: Implementar uma função de raiz quadrada de inteiro rápido que obtém um inteiro sem sinal de 32 bits e retorna outro inteiro sem sinal de 32 bits que é a base da raiz quadrada da entrada.

public class SquareRootBinarySearch {

public static void main (String [] args)

{

entradas int [] = {18, 67, 54, 98, 13908};

para (entrada interna: entradas)

{

getSquareRoot (entrada);

//System.out.println( relevantThe Square Root de “+ input +” é: ”+ getSquareRoot (input));

}

}

private static int getSquareRoot (int input) {

int alto = entrada;

int baixo = 1;

int delta = Integer.MAX_VALUE;

início int = 0, fim = 0;

boolean canContinue = true;

resultado int = 0;

while ((baixo <alto) && canContinue)

{

início = baixo;

fim = alto;

if (alto – baixo <= 1)

canContinue = false;

int médio = baixo + (alto-baixo) / 2;

//System.out.println( BudapLow é: ”+ baixo +” e alto é: ”+ alto);

int tempSquareRoot = mid * mid;

int tempDelta = Math.abs (tempSquareRoot – entrada);

if (delta> tempDelta)

{

delta = tempDelta;

resultado = mid;

}

if (tempSquareRoot> input)

{

alto = médio;

}

outro

{

baixo = médio;

}

}

System.out.println (“Raiz quadrada de“ + entrada + ”está entre“ + início + ”e“ + fim + ”E O RESULTADO É:“ + resultado);

return 0;

}

}

Tagged