求数的三次方根
给定一个浮点数 n
,求它的三次方根。
输入格式
共一行,包含一个浮点数 n
。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留 6
位小数。
数据范围
−10000≤n≤10000
输入样例:
1000.00
输出样例:
10.000000
浮点数二分(模板):
double l=a,r=b;
while(r-l>c){
double mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid;
}
c++
#include <iostream>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
double n;
double power3(double a) {return a * a * a;}
int main()
{
IOS;
cin >> n;
double l = -10000, r = 10000;
while (r - l >= 1e-8)
{
double mid = (l + r) / 2;
if (power3(mid) < n) l = mid ;
else r = mid;
}
printf("%.6f\n", l);
return 0;
}
java
import java.io.*;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
double n = Double.parseDouble(in.readLine());
double l = -10000, r = 10000;
while (r - l > 1e-8) {
double mid = (l + r) / 2;
if (mid *mid *mid < n) l = mid;
else r = mid;
}
System.out.printf("%.6f\n",l);
}
}