- 还是二分(double)
- 保留6位小数,取 临界 1e-8
- mid ^ 3表示异或,mid * mid *mid 表示3 次方
代码
#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); //默认保留6位
return 0;
}
方法2–直接调用函数
#include <iostream>
#include <cmath>
double n;
using namespace std;
int main()
{
cin >> n;
printf("%lf",cbrt(n));
return 0;
}