题解 | #求解立方根# 两个for循环解决

求解立方根

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

import java.math.BigDecimal;

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        double num = sc.nextDouble();

        boolean moreZero = num >= 0;

        if (!moreZero) {

            num = -num;

        }

        double min = 0;

        double max = 0;

        for (int i = 0; i <= Math.sqrt(num); i++) {

            for (double j = 0; j < 1; j = j + 0.1) {

                double k = new BigDecimal(i).add(new BigDecimal(j)).doubleValue();

                if (k * k * k <= num) {

                    min = k;

                } else {

                    max = k;

                    break;

                }

            }

            if (max > 0) {

                break;

            }

        }

        double result = min;

        if (Math.abs((num - min * min * min)) > Math.abs((num - max * max * max))) {

            result = max;

        }

        System.out.println(moreZero ? result : -result);

    }

}

#Java#
全部评论

相关推荐

07-09 18:33
门头沟学院 Java
这么逆天每年都有人去???&nbsp;填多益网申就是大型的服从性测试
鲁大牛:辅导员在群里发了这个公司我就申了一下。网申居然要写当场开摄像头写两篇不少于三百字的作文。太逆天了
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务