Я знаю, как получить квадратный корень из числа с помощью функции sqrt.
Как получить кубический корень из числа?
Я знаю, как получить квадратный корень из числа с помощью функции sqrt.
Как получить кубический корень из числа?
sqrt означает "квадратный корень", а "квадратный корень" означает повышение до уровня 1/2. Нет такой вещи, как "квадратный корень с корнем 2" или "квадратный корень с корнем 3". Для других корней вы меняете первое слово; в вашем случае, вы ищете, как выполнять кубирование root.
До С++ 11 для этого нет конкретной функции, но вы можете вернуться к первым принципам:
std::pow(n, 1/2.) (или std::sqrt(n))std::pow(n, 1/3.) (или std::cbrt(n) с С++ 11)std::pow(n, 1/4.)Если вы ожидаете передать отрицательные значения для n, избегайте решения std::pow — он не поддерживает отрицательные входы с дробными показателями, и именно поэтому добавлен std::cbrt:
std::cout << std::pow(-8, 1/3.) << '\n'; // Output: -nan
std::cout << std::cbrt(-8) << '\n'; // Output: -2
N.B. То, что . действительно важно, поскольку в противном случае 1/3 использует целочисленное деление и приводит к 0.
в С++ 11 std::cbrt был представлен как часть библиотеки математика, вы можете refer
include <cmath>
std::pow(n, 1./3.)
Кроме того, в С++ 11 есть cbrt в том же заголовке.
n-й корень из x равен x ^ (1/n), поэтому используйте std::pow. Но я не вижу, что это связано с перегрузкой оператора.
sqrt() не является оператором.sqrt(). Пожалуйста, объясните, почему вам нужно перегрузить sqrt() чтобы мы могли помочь вам сделать то, что вы хотите.
Я бы отказался от любого из вышеуказанных методов, поскольку они не работали для меня. Я сделал pow (64, 1/3.) Вместе с pow (64, 1./3.), Но ответ, который я получил, был 3
Здесь моя логика.
ans = pow(n, 1/3.);
if (pow(ans, 3) != n){
ans++;
}
На самом деле раунд должен работать над этими решениями.
Правильное решение будет
ans = round (pow (n, 1./3.));