日常——三次方根

219 阅读1分钟

题目描述

给定一个浮点数n,求它的三次方跟

输入格式

共一行,包含一个浮点数n

输出格式

共一行,包含一个浮点数,表示问题的解,结果保留六位小数

数据范围

10000n10000-10000 \le n \le 10000

输入样例:

1000.00

输出样例:

10.000000

Solution

package cn.zxy.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 数的三次方跟
 */
public class SqrtByThree{

    public static void main(String[] args) throws IOException {
        final double ACC = 1e-8;
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        double x = Double.parseDouble(in.readLine());
        double l = -100, r = 100;
        long tmp = 0;
        while (r - l > ACC){
            double mid = (l + r) / 2;
            tmp++;
            if (mid * mid * mid > x) r = mid;
            else l = mid;
        }
        System.out.printf("%.6f\n", l);
        System.out.println(tmp);
    }
}

也是二分搜索的思想