790. 数的三次方根

98 阅读1分钟

790. 数的三次方根 - AcWing题库

Solution

Java

import java.util.Scanner;

public class Main {

    private static double eps = 1e-8;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double val = scanner.nextDouble();
        double left = -Double.MAX_VALUE;
        double right = Double.MAX_VALUE;
        double cubic = binarySearch(left, right, val);
        System.out.printf("%.6f", cubic);
    }

    private static double binarySearch(double left, double right, double target) {
        while (right - left > eps) {
            double mid = (left + right) / 2;
            if (mid * mid * mid >= target) {
                right = mid;
            } else {
                left = mid;
            }
        }
        return left;
    }
    
}