思路
限定二分的边界,不断逼近即可。 简单原则,选择需要开根号的数为其中一个边界。
代码主体
double figure(double x) {
return x * x * x;
}
int main() {
cout << "Input Your Num:" << endl;
cin >> n;
double l, r, mid;
// 就简单以输入的数字为右边界
n >= 0 ? (l = 0, r = n) : (l = n, r = 0);
double temp;
// 左右边界的差值为精度
while (r - l >= 1e-7)
{
// 简单的二分
mid = (l + r) / 2;
temp = figure(mid);
if (temp > n) {
r = mid;
} else if (temp < n) {
l = mid;
} else {
ans = mid;
break;
}
// 优先取更小的
ans = l;
}
cout << setprecision(6) << ans << endl;
return 0;
}