0 题目来源
1 涉及到的知识点
实数二分
注意数据范围和精度限制,精度一般在while循环条件中体现,while循环中的条件一般要比要求的精度小两个数量级。
2 题目描述
3 输入输出
输入格式:
共一行,包含一个浮点数 nn。
输出格式:
共一行,包含一个浮点数,表示问题的解。
注意,结果保留 66 位小数。
数据范围:
−10000≤n≤10000
4 样例
5 思路
本题为典型实数二分模板题,直接在-10000到10000之间用二分法寻找n的三次方根即可,如下:
6 代码
#include<iostream>
#include<cmath>
using namespace std;
double bs(double n)
{
double l=-10000,r=10000;
double mid;
while((r-l)>1e-8)
{
mid=(l+r)/2;
if(mid*mid*mid>=n)
r=mid;
else
l=mid;
}
return mid;
}
int main()
{
double n;
cin>>n;
printf("%.6f",bs(n));
return 0;
}