题解 | #求解立方根#

求解立方根

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

#include <stdio.h>
#include <string.h>
#include <math.h>
// double 型
//二分法
// 浮点数判断0一般是和espi=0.000001比较
// 0-y
// x=y/2.0
// 判断大小?
//要考虑0-1 还有y是负数的情况匹配二分区间
double espi = 0.000001;
double bin(double y, double m, double n);
int main()
{

    double y;
    scanf("%lf", &y);
    double x;
    if (y >= 1)
    {
        x = bin(y, 1, y);
    }
    else if (y <= -1)
    {
        x = bin(y, y, -1);
    }
    else if (y >= 0 && y < 1)
    {
        x = bin(y, 0, 1);
    }
    else if (y <= 0 && y > -1)
    {
        x = bin(y, -1, 0);
    }

    printf("%.1lf", x);
    return 0;
}

double bin(double y, double m, double n)
{
    double ret;
    double x;
    x = (m + n) / 2.0;
    double cmp = x * x * x;
    if (fabs(y - cmp) <= espi)
    {
        ret = x;
    }
    else if (y - cmp > espi)
    {
        ret = bin(y, x, n);
    }
    else
    {
        ret = bin(y, m, x);
    }

    return ret;
}
全部评论

相关推荐

03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
04-07 20:46
宁夏大学 Java
一个轮子项目一个苍穹外卖,外卖项目包装成其他的,但是技术点都没变,不知道这样可行不可行。有没有好心人帮我提点建议啊
拿铁不coding:找实习微服务可不学,mq大致场景要了解,但不学问题也不大。我没写在简历上,也没咋问。重点还是mysql redis Java的八股,我根据真实面经整理得到的最全(高/中/低频)面试题,需要的牛u可以订阅一手我的专栏,祝好运
点赞 评论 收藏
分享
评论
3
2
分享

创作者周榜

更多
牛客网
牛客企业服务