题解 | #求解立方根#

求解立方根

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));
            }
        }
}
全部评论

相关推荐

点赞 评论 收藏
分享
炫哥_:为什么都读硕士了?项目还是网上的项目(真心发问)
最后再改一次简历
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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