思想

在编程中没有开根号这种直接的操作,所以必须要借用暴力来计算 (x^3 = 目标值),从而获得 x

方法

1.划定范围,准备暴力 (题目会给暴力范围)
2.二分夹击获得目标值的三次方
3.保留6位小数以及所有整数

注意点

  • 1e-8是10的负八次方,一个非常小的浮点数。(用来限定循环,因为浮点数mid可以无限细,我们只需要相对细的就足够,毕竟只需要保留6位小数)
  • new ``DecimalFormat``_(_``"#.000000"``_)_``.format``_(_``left``_)_ 保留所有整数,和6位小数(从7位开始四舍五入)
  • 浮点数不存在取整问题

    1. public static void main(String[] args) {
    2. Scanner sc = new Scanner(System.in);
    3. double left = -10000;
    4. double right = 10000;
    5. //外部输入
    6. double goal = sc.nextDouble();
    7. while(right - left > 1e-8){
    8. double mid = (left+right)/2;
    9. if (mid*mid*mid > goal){
    10. right = mid;
    11. }else{
    12. left = mid;
    13. }
    14. System.out.println(new DecimalFormat("#.000000").format(left));
    15. }
    16. }