原题链接
问题描述:
给定一个浮点数n,求它的三次方根。
数据范围:
?10000≤n≤10000
分析:
??由题意可得,在数据范围内枚举即可得n三次方根。但n是浮点数,它的三次方根也是浮点数,
??浮点数在数轴上是稠密分布的,所以只能用二分的思想无限逼近求得答案。
代码:
#include<iostream>
using namespace std;
int main(){
double n;
cin>>n;
double l=-10000,r=10000;
double mid;
while(r-l>1e-8){
mid=(l+r)/2;
if(mid*mid*mid<n)l=mid;
else r=mid;
}
printf("%.6lf",mid);
return 0;
}