Я знаю, как получить квадратный корень из числа с помощью функции 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.));