给定一个浮点数n,求它的三次方根。
输入格式
共一行,包含一个浮点数n。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留6位小数。
数据范围
−10000≤n≤10000
输入样例:
1000.00
输出样例:
10.000000
思路:
运用到了浮点数二分的思想,因为x的三次方跟是一个单调的区间,单调的区间一定可以使用二分。
数据范围是 −10000≤n≤10000
所以设定区间范围为l=-10000,r=10000;
当r-l之间的长度比1e-8还小时,l和r就是答案。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
double n;
cin>>n;
double l=-10000;
double r=10000;
while(r-l>=1e-8){
double mid=(l+r)/2;
if((mid*mid*mid)>n){
r=mid;
}
else l=mid;
}
printf("%.6lf",l);
}