float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
然后浮点数的开三次方是在正负一万之间的
所以代码是可行的
然后浮点数在相减<=1e-8的时候可以默认为相等
给定一个浮点数 nn,求它的三次方根。
输入格式
共一行,包含一个浮点数 nn。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留 66 位小数。
数据范围
−10000≤n≤10000−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("%lf\n" , l) ;
return 0 ;
}