给定一个浮点数
n
,求它的三次方根。
输入格式
共一行,包含一个浮点数
n
。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留 6 位小数。
数据范围
−10000≤n≤10000
输入样例:
1000.00
输出样例:
10.000000
思路
在区间中找到一个接近的值
#include <iostream>
using namespace std;
int main() {
double x;
cin >> x;输入浮点数
double l = -10000, r = 10000;//结果范围的初始化
while (r - l > 1e-8) {
double mid = (l + r)/2;//每一次取中间值判断边界大小,缩小区间
if (mid * mid * mid >= x) r = mid;
else l = mid;
}
printf("%1f\n", l);//找到一个最接近的值
return 0;
}
参考
1.https://www.acwing.com/problem/content/792/