用迭代法用C语言求立方根
时间: 2024-11-06 17:19:39 浏览: 27
在C语言中,我们可以使用牛顿迭代法(也称为二分法的一种变种)来近似计算立方根。这是一种数值方法,通过不断逼近的方式找到函数的零点,对于求平方根同样有效,对于立方根也是同样的道理。以下是简单的牛顿迭代法求立方根的算法:
```c
#include <stdio.h>
#include <math.h>
double cube_root(double num, double epsilon) {
double guess = num / 3; // 初始猜测值
while (fabs(guess * guess * guess - num) > epsilon) {
guess = (guess + num / guess * guess) / 2; // 更新猜测值
}
return guess;
}
int main() {
double number;
printf("请输入一个正数:");
scanf("%lf", &number);
if (number >= 0) {
double result = cube_root(number, 1e-6); // 设置精度
printf("该数的立方根约为 %.8f\n", result);
} else {
printf("立方根只适用于非负实数。\n");
}
return 0;
}
```
在这个程序中,`cube_root` 函数接收两个参数:待求立方根的数字 `num` 和一个很小的浮点数 `epsilon` 作为停止迭代的阈值。在 `while` 循环中,如果当前猜测值的三次方与原数之差小于指定精度,就认为找到了一个足够接近的解。
阅读全文