¿Cuál es el algoritmo para encontrar la raíz cuadrada de un número sin ninguna función predefinida en C ++?

Aquí estoy escribiendo un programa en c ++ para que calcules la raíz cuadrada de un número sin usar ninguna función predefinida. Puede modificar fácilmente este programa para obtener la enésima raíz de un número.

¡Este algoritmo simple le da la raíz cuadrada correcta hasta 18 dígitos después del decimal! Y puede aumentar aún más la precisión aumentando el límite de la variable de bucle ‘i’.

También adjunto ciertas capturas de pantalla para mostrar el funcionamiento de este programa 🙂

#include
#include
raíz doble larga (número flotante)
{
largo doble mod = 1, ans = 0;
para (int i = 0; i <1000000; i ++, ans + = mod)
{
if (ans * ans> num)
{
ans- = mod;
mod / = 10;
}
}
volver ans;
}
int main ()
{
flotador num;
printf (“INGRESE EL NÚMERO: -“);
scanf (“% f”, & num);
printf (“\ n RAÍZ CUADRADA DE% f IS: -% .20lf \ n \ n”, num, root (num));
devuelve 0;
}