题解 | #求解立方根#

求解立方根

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextDouble()) { // 注意 while 处理多个 case
            double input=in.nextDouble();
            double num = input<0? -input: input;

            double bottom=0;
            double top=0;
            while(top*top*top<num){
                top++;
            }
            bottom=top-1;
            double mid=bottom+ (top-bottom)/2;
            double mul=mid*mid*mid;

            while(top-bottom>0.1){
                if(mul>=num){
                    top=mid;
                }else{
                    bottom=mid;
                }

                 mid=bottom+ (top-bottom)/2;
                 mul=mid*mid*mid;
            }
            if(input<0){
                mid=-mid;
            }
            System.out.println(String.format("%.1f",mid));
        }
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务