数的三次方根

790. 数的三次方根

给定一个浮点数 nn,求它的三次方根。

输入格式

共一行,包含一个浮点数 nn。

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留 66 位小数。

数据范围

−10000≤n≤10000

输入样例:

1
1000.00

输出样例:

1
10.000000

解法

二分法,对−10000≤n≤10000区间内进行遍历即可。

代码为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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;
double r = 10000;
//因为保留6位所以取-8,比小数点后面的数要多二,比较保险
while (r-l>1e-8){//浮点数二分的本质也是边界, 唯一区别是浮点数没有整除,当区间长度足够小时, 便可以认为是一个数
double mid = (l+r)/2;
if (mid*mid*mid>=n) r = mid;
else l = mid; //为什么没有+1:因为是浮点数求解,l的结果也有可能是mid+0.1,所以不能+1.
}
//方式一:
// DecimalFormat decimalFormat = new DecimalFormat();
// decimalFormat.applyPattern("0.000000");
// System.out.println(decimalFormat.format(l));
//方式二:
System.out.println(String.format("%.6f",l));
}
}

数的三次方根
http://example.com/2022/06/13/数的三次方根/
作者
zlw
发布于
2022年6月13日
许可协议