如何在c ++中计算数字的第3个根

时间:2016-03-02 21:35:47

标签: c++ math

我正在尝试计算数字的第3个根。

例如,如果 的 N = 8-大于2; 如果n = 27-> 3;

pow函数在平方根(x ^ 0.5)上运行良好,但它不适用于第3根(x ^ 1/3),为什么会这样?

#include <iostream>
#include <math.h>

using namespace std;

int main() {
    int e = 0.3;
    double k;
    cout << "Enter k:" << endl;
    cin >> k;
    k = pow(k, e);
    cout << "The result of k^1/3 " << k << endl;
    return 0;
}

3 个答案:

答案 0 :(得分:4)

两个问题:

  • 您将e声明为int,但尝试在其中存储double值,因此会被截断。您需要将e声明为double才能正确存储该值。
  • 您用于e的值不正确。 0.31.0/3.0不同,因此您的结果将会被取消。请改为使用1.0/3.0作为此值。

答案 1 :(得分:2)

您已将指数声明为整数,因此始终将其指定为零。将它声明为双。

在主要尝试中

double e = 1.0/3.0;
double k;
cout << "Enter k:" << endl;
cin >> k;
k = pow(k, e);
cout << "The result of k^1/3 " << k << endl;
return 0;

答案 2 :(得分:2)

你必须在这里使用double:

double e = 1./3.;

而不是int。

#include <iostream>
#include <math.h>
using namespace std;

int main() {
    double e = 1./3.; // <- this line is changed!
    double k;
    cout << "Enter k:" << endl;
    cin >> k;
    k = pow(k, e);
    cout << "The result of k^1/3 " <<k << endl;
    return 0;
}