题解 | #求解立方根#

求解立方根

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

import java.util.*;
public class Main {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                double n = sc.nextDouble();
                double num = n>0?n:-n;//负数先当正数处理
                double bottom=0;
                double top =0;
                //先假设 这个数的立方根是介于 bottom和top之间
                while(top*top*top< num){
                    top++;
                }
                bottom=top-1;
                //定义 bottom和top的中间值
                double mid = bottom+(top-bottom)/2;
                double mul = mid*mid*mid;
                while(top-bottom>0.1){
                    //二分 逐渐判断top到mid  还是 mid到bottom
                    if(mul>num){
                        top=mid;
                    }else{
                        bottom=mid;
                    }
                    mid = bottom+(top-bottom)/2;
                    mul = mid*mid*mid;
                }
                if(n<0){
                    mid=-mid;
                }
                System.out.println(String.format("%.1f",mid));
            }
        }
}
全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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