题解 | #求解立方根#

求解立方根

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

#include<iostream>
using namespace std;
int main()
{
    double d;
    while(cin>>d)
    {
        bool op=false;
        if(d<0)
        {
            op=true;
            d=d*(-1.0);
        }
        int tmp=0;
        while(abs(d)<1)
        {
            d*=1000;
            tmp++;
        }
        double minv=0;
        double maxv=d;
        double midv=(minv+maxv)/2;
        while(abs(midv*midv*midv-d)>0.001)
        {
            if(midv*midv*midv>d)
            {
                maxv=midv;
            }
            else if(midv*midv*midv<d)
            {
                minv=midv;
            }
            else
            {
                break;
            }
            midv=(maxv+minv)/2;
        }
        while(tmp)
        {
            midv/=10;
            tmp--;
        }
        if(op)
        {
            midv=midv*(-1.0);
        }
        printf("%.1lf\n",midv);
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
02-16 10:35
已编辑
西安科技大学 golang
虚闻松声:整体应该挺好了 项目2-3个就够了。都类似第一段这么写。 构建数据闭环 推动工程创新 优化架构设计 免费修改简历,就业咨询,欢迎私信交流。
点赞 评论 收藏
分享
02-17 20:43
西北大学 Java
在做测评的猫头鹰很紧张:他问你,你问deep seek
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务