利用二分法求三次方根
思路
就是浮点数二分,保证答案在区间内,不断的二分,使得区间长度满足其精度要求
代码如下
#include <iostream>
using namespace std;
int main() {
double x;
scanf("%lf", &x);
bool flag = x < 0 ? (x = -x, true) : false;
double l = 0, r = x;
while (r - l > 1e-8) {//二分使得足够小的区间
double mid = (l + r) / 2;
if (mid * mid * mid > x) r = mid;
else l = mid;
}
if (flag) cout << '-';
printf("%lf", l);
return 0;
}
如有错误,欢迎指正!