Tem como fazer um programa que recebe um número x e mostre sua raiz quadrada?
Ps: Sem utilizar a biblioteca"math.h" (sei que é possivel usando essa biblioteca)
Se a biblioteca math implementa isso, e não usa algum tipo de magia, então deve ter como implementar, não é mesmo?
O que é a raiz quadrada? É o inverso da operação do quadrado, ou seja
sqrt(x2) = x
quando
x * x = x2
Sabendo isso dá pra pensar em algum algoritmo que calcule x
a partir de x2
. Por exemplo, podemos iterar desde 0
até achar um valor que quando multiplicado por si mesmo de um valor proximo ao de x2
, e assim temos a raiz quadrada.
para x := 0 ate INFINITO faça:
se (x * x) >= x2 então:
retorne x
É ineficiente mas funciona. Assim da para tentar bolar outros algoritmos mais eficientes para números grandes, por exemplo da pra tentar ir percorrendo ao contrario usando divisão de x2
por x
, etc. Só usar a criatividade, analisar as relações entre os números, o domínio de resultados possíveis podendo descartar coisas que dá pra saber de antemão que não vão fazer parte da solução, etc.