Подтвердить что ты не робот

Как я могу получить корень куба в С++?

Я знаю, как получить квадратный корень из числа с помощью функции sqrt.

Как получить кубический корень из числа?

4b9b3361

Ответ 1

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.

Ответ 2

в С++ 11 std::cbrt был представлен как часть библиотеки математика, вы можете refer

Ответ 4

n-й корень из x равен x ^ (1/n), поэтому используйте std::pow. Но я не вижу, что это связано с перегрузкой оператора.

Ответ 5

  1. sqrt() не является оператором.
  2. Вы не можете перегрузить sqrt().

Пожалуйста, объясните, почему вам нужно перегрузить sqrt() чтобы мы могли помочь вам сделать то, что вы хотите.

Ответ 6

Я бы отказался от любого из вышеуказанных методов, поскольку они не работали для меня. Я сделал pow (64, 1/3.) Вместе с pow (64, 1./3.), Но ответ, который я получил, был 3
Здесь моя логика.

ans = pow(n, 1/3.);
if (pow(ans, 3) != n){
   ans++;
}

Ответ 7

На самом деле раунд должен работать над этими решениями.

Правильное решение будет

ans = round (pow (n, 1./3.));