用迭代法求立方根的C++代码
时间: 2023-10-31 14:06:36 浏览: 97
```
#include <stdio.h>
double cube_root(double x) {
double low = 0.0, high = x, mid;
while (high - low > 1e-9) {
mid = (low + high) / 2;
if (mid * mid * mid > x) {
high = mid;
} else {
low = mid;
}
}
return low;
}
int main() {
double x;
printf("请输入一个实数:");
scanf("%lf", &x);
printf("%.6lf 的立方根是:%.6lf\n", x, cube_root(x));
return 0;
}
```
相关问题
c++用迭代法求立方根
以下是用迭代法求立方根的 Python 代码:
```python
def cube_root(x):
epsilon = 0.0001 # 精度要求
guess = x / 3 # 初始猜测
while abs(guess**3 - x) >= epsilon:
guess = guess - (guess**3 - x) / (3 * guess**2) # 迭代
return guess
```
在这个函数中,我们首先定义了精度要求 epsilon 为 0.0001,然后初始化猜测为 x 的三分之一。接着,我们采用了牛顿-拉弗森迭代法,即每一次迭代都将当前猜测值减去函数值与斜率的比值。具体来说,我们用 guess**3 - x 表示函数值,3 * guess**2 表示斜率,两者相除得到比值,然后再将其从当前猜测值 guess 中减去,得到新的猜测值。最后,我们判断新旧猜测值的差是否小于精度要求 epsilon,如果是,则认为已经找到了立方根,返回当前猜测值。如果不是,则继续迭代,直到满足精度要求为止。
c++用迭代公式求立方根
迭代公式求立方根的方法如下:
设要求的数为x,取一个初始值guess,对于每次迭代,都将guess更新为:
guess = (2 * guess + x / guess / guess) / 3
当新的guess与上一次迭代的值相差小于一个很小的数时,就可以认为已经求出了x的立方根。
以下是用Python实现的迭代公式求立方根的代码:
```
def cube_root(x):
guess = x / 3
while True:
new_guess = (2 * guess + x / guess / guess) / 3
if abs(new_guess - guess) < 0.00000000001:
return new_guess
guess = new_guess
```
其中,0.00000000001是一个很小的数,用于判断是否已经接近于真实值。