题解 | #求解立方根#

求解立方根

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

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务