题解 | #求解立方根#

import java.util.Scanner;

public class CubeRoot {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double num = scanner.nextDouble();
        double nagNum = -num;
        if(num<0){
            num = -num;
        }

        int pointLeft = 0;
        double pointRight1 = 0;
        double pointRight2 = 0;
        double val = 0;

        for(int i=1 ;i<num;i++){
            if((i*i*i) <=num && (i+1)*(i+1)*(i+1)>=num){
                pointLeft=i;
            }
        }
        
        for(int i=1;i<10;i++){
            double right1=(double)i/10;
            double temp = 0;
            temp = pointLeft+right1;
            if(temp*temp*temp<=num && (temp+0.1)*(temp+0.1)*(temp+0.1)>=num){
                pointRight1=right1;
            }
        }
        
        for(int i=1;i<10;i++){
            double right2=(double)i/100;
            double temp = 0;
            temp = pointLeft+pointRight1+right2;
            if(temp*temp*temp<=num && (temp+0.01)*(temp+0.01)*(temp+0.01)>=num){
                pointRight2=right2;
            }
        }

        if(pointRight2<0.05){
            val=pointLeft+pointRight1;
        }else {
            int x = (int)((pointRight1+0.1)*100)/10;
            pointRight1 = (double) x/10;
            val = pointLeft+pointRight1;
        }

        if(nagNum>0){
            val=-val;
        }
        
        System.out.println(val);
    }
}


#华为笔试#
华为笔试题 文章被收录于专栏

保证运行通过

全部评论

相关推荐

12-05 18:24
已编辑
武汉大学 算法工程师
投票
某集成电路公司 算法工程师 18k×14 硕士985
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 18:43
景嘉微电子 嵌入式开发 20k 硕士985
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-26 17:18
投票
菜鸟集团 前端工程师 19k*16 硕士双一流
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务