思想
在编程中没有开根号这种直接的操作,所以必须要借用暴力来计算 (x^3 = 目标值),从而获得 x
方法
1.划定范围,准备暴力 (题目会给暴力范围)
2.二分夹击获得目标值的三次方
3.保留6位小数以及所有整数
注意点
- 1e-8是10的负八次方,一个非常小的浮点数。(用来限定循环,因为浮点数mid可以无限细,我们只需要相对细的就足够,毕竟只需要保留6位小数)
new ``DecimalFormat``_(_``"#.000000"``_)_``.format``_(_``left``_)_保留所有整数,和6位小数(从7位开始四舍五入)浮点数不存在取整问题
public static void main(String[] args) {Scanner sc = new Scanner(System.in);double left = -10000;double right = 10000;//外部输入double goal = sc.nextDouble();while(right - left > 1e-8){double mid = (left+right)/2;if (mid*mid*mid > goal){right = mid;}else{left = mid;}System.out.println(new DecimalFormat("#.000000").format(left));}}
