7 条题解
-
0
#include #include // 用于比较误差 using namespace std;
// 计算x的三次方根的函数,使用牛顿迭代法 double cbrt(double x, double tolerance) { if (x == 0) { return 0; }
double guess = x / 3; // 初始猜测值 double next_guess; do { next_guess = (2 * guess + x / (guess * guess)) / 3; // 牛顿迭代公式 if (abs(next_guess - guess) < tolerance) { // 如果误差小于容忍度,则停止迭代 return next_guess; } guess = next_guess; } while (true);
}
int main() { double x; cout << "Enter a number to calculate its cube root: "; cin >> x;
double tolerance = 1e-10; // 设置误差容忍度 double result = cbrt(x, tolerance); if (result != -1) { cout << "The cube root of " << x << " is approximately " << result << endl; cout << "Standard library result: " << cbrt(x) << endl; // 使用标准库函数进行比较 } return 0;
}
信息
- ID
- 51
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 393
- 已通过
- 259
- 上传者