题解 | #求解立方根#

求解立方根

https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
// 找规律。分为ads在0-1和abs 1-21两种情况处理
public class Main {
    public static void main(String[] args) {
        cube();

    }

    private static void cube() {
        Scanner in = new Scanner(System.in);
        double aDouble = in.nextDouble();

        if (aDouble != 0 && aDouble >= -21 && aDouble <= 21) {
            if (-1 == aDouble || 1 == aDouble) {
                System.out.println(aDouble);
            }
            double de_c = 0;
            double de = 0;
            double abs = Math.abs(aDouble);
            if ((0 < abs && abs < 1)) {
                for (double i = 0.10; i < 1; i = i + 0.10) {
                    double d = i * i * i;
                    double v = Math.abs(abs - d);
                    if (i == 0.1) {
                        de_c = v;
                        de = i;
                    } else if (de_c > v) {
                        de_c = v;
                        de = i;
                    }
                }
                String format = String.format("%.1f", de);

                if (aDouble > 0) {
                    System.out.println(format);
                } else {
                    System.out.println("-" + format);
                }
            } else {
                int intValue = 0;
                int intValueSmall = 0;
                boolean f = true;
                for (int i = 2; i <= 21; i++) {
                    int v = i * i * i;
                    if (v > abs && f) {
                        intValue = i;
                        intValueSmall = i - 1;
                        for (double a = intValueSmall; a < intValue; a = a + 0.1) {
                            double d = a * a * a;
                            double vx = Math.abs(abs - d);
                            if (a == intValueSmall) {
                                de_c = vx;
                                de = a;
                            } else if (de_c > vx) {
                                de_c = vx;
                                de = a;
                            }
                        }
                        f = false;
                    }
                }
                String format = String.format("%.1f", de);

                if (aDouble > 0) {
                    System.out.println(format);
                } else {
                    System.out.println("-" + format);
                }
            }
        }
        // 库函数
        //Math.cbrt(in.nextDouble());

    }
}

全部评论

相关推荐

找不到工作死了算了:没事的,雨英,hr肯主动告知结果已经超越大部分hr了
点赞 评论 收藏
分享
恰好,我就是有一个弟弟。这样的关注让我感到有些无奈,难道这和我的能力、经验有什么关系吗?求职的路上,真是充满了各种奇怪的考量,让我很想吐槽。希望未来的招聘能更关注求职者的专业素养,而不是这些无关紧要的个人信息。
热血的蚊不叮追赶太阳:找工作,你就是牛马,牛马是否便宜,是否好压迫,女的牛马生不生孩子,男的牛马有没有房贷,一切都是试探你是否好压榨,所以真的我看你是汽车行业的,可以去外企博世,舍弗勒,索恩格,大陆。。。各种外企的供应链 甚至麦当劳苹果店长这些我感觉都把人当人看
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务