题目描述
给定一个浮点数n,求它的三次方根。
输入格式
共一行,包含一个浮点数n。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留6位小数。
数据范围
−10000≤n≤10000
输入样例:
1000.00
输出样例:
10.000000
算法1:二分
思路
取题目数据范围为区间,每次假设中间值为答案,与题目数据比较来缩小区间
Java 代码
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
double n = scanner.nextDouble();
double l = -10000,r = 10000;
//因为是小数二分,所以l永远<r,当它们足够接近时即可跳出
while(r - l >= 0.0000001){
double m = (l + r)/2;
if(m * m * m > n){
r = m;
}else{
l = m;
}
}
System.out.printf("%.6f",l);
}
}