raiz - ¿Cómo puedo obtener la raíz cúbica en C++?
raiz cubica ejemplos (7)
-
sqrt()
no es un operador. - No puede sobrecargar
sqrt()
.
Explique por qué necesita sobrecargar `sqrt ()` para que podamos ayudarlo a hacer lo que quiera.
Sé cómo obtener la raíz cuadrada de un número usando la función sqrt
.
¿Cómo puedo obtener la raíz cúbica de un número?
Desalentaría cualquiera de los métodos anteriores ya que no funcionaron para mí. Hice pow (64, 1/3.) Junto con pow (64, 1./3.) Pero la respuesta que obtuve fue 3
Aquí está mi lógica.
ans = pow(n, 1/3.);
if (pow(ans, 3) != n){
ans++;
}
En realidad, la ronda debe ir para que las soluciones anteriores funcionen.
La solución correcta sería
ans = redondo (pow (n, 1./3.));
La raíz n de x es igual a x ^ (1 / n), así que usa std::pow
. Pero no veo qué tiene esto que ver con la sobrecarga del operador.
en C ++ 11 std::cbrt
se introdujo como parte de la biblioteca matemática , puede consultar
sqrt
significa "raíz cuadrada", y "raíz cuadrada" significa aumentar a la potencia de 1/2
. No existe tal cosa como "raíz cuadrada con raíz 2" o "raíz cuadrada con raíz 3". Para otras raíces , cambias la primera palabra; En su caso, está buscando cómo realizar el enraizamiento de cubos .
Antes de C ++ 11, no hay una función específica para esto, pero puede volver a los primeros principios:
- Raíz cuadrada:
std::pow(n, 1/2.)
(Ostd::sqrt(n)
) - Raíz de cubo:
std::pow(n, 1/3.)
(Ostd::cbrt(n)
desde C ++ 11) - Cuarta raíz:
std::pow(n, 1/4.)
- etc.
Si espera pasar valores negativos para n
, evite la solución std::pow
, ya que no admite entradas negativas con exponentes fraccionarios , por lo que se agregó std::cbrt
:
std::cout << std::pow(-8, 1/3.) << ''/n''; // Output: -nan
std::cout << std::cbrt(-8) << ''/n''; // Output: -2
NB Eso .
es realmente importante, porque de lo contrario, 1/3
usa la división entera y da como resultado 0
.
include <cmath>
std::pow(n, 1./3.)
Además, en C ++ 11 hay cbrt
en el mismo encabezado.