华为机试-创新互联

目录

我们一直强调网站设计、成都网站设计对于企业的重要性,如果您也觉得重要,那么就需要我们慎重对待,选择一个安全靠谱的网站建设公司,企业网站我们建议是要么不做,要么就做好,让网站能真正成为企业发展过程中的有力推手。专业的建站公司不一定是大公司,成都创新互联作为专业的网络公司选择我们就是放心。

描述

输入描述:

输出描述:

解题过程

提交代码

学习代码

代码一

代码二

收藏点

1. 二分法

2. pow函数 


描述

计算一个浮点数的立方根,不使用库函数。

保留一位小数。

数据范围:∣val∣≤20 

输入描述:

待求解参数,为double类型(一个实数)

输出描述:

输出参数的立方根。保留一位小数。

解题过程

第一反应是穷举法,但是题目上说是用二分法。

提交代码

学习代码 代码一

(作者:https://www.nowcoder.com/users/623283906)

//二分法求立方根
#include#includefloat func(float x, float y, float z) {
//x、y分别是上限和下限(范围),z是要求解立方根的数
    float temp;
    temp = z;//存放z这个原来的数
    z = fabs(z);//求绝对值
    if (z == 0)
        return 0;//如果z是0的话,返回0
    else {
        float a, b;
        a = x * x * x - z;
        if (fabs(a)< 0.01)
            return x;//x是|z|的立方根

        b = y * y * y - z;
        if (fabs(b)< 0.01)
            return y;
        if (a * b< 0) {//a*b<0也就是说,立方根在x和y之间
            y = (x + y) / 2;//y变为:x和y中间的那个数
        } else {//如果a*b>0也就是说,立方根不在x和y之间
            x = y;
            y = 2 * y;//那么把y赋给x,把y变为原来的两倍
        }
        if (temp >0)//如果原来的数是正数的话,就不用变号
            return func(x, y, z);//然后进行递归,将经过处理后的变量xyz舒服func中
        else
            return -func(x, y, z);

    }
}
int main() {
    float a, b;
    scanf("%f", &b);
    a = func(0, 20, b);
    printf("%.1f\n", a);//保留一位小数
    return 0;

}
代码二

(作者:https://www.nowcoder.com/users/129331010)

#include#includeint main()
{
    double n;
    scanf("%lf", &n);
    if(n >= 0)
        printf("%.1f", pow(n, 1.0/3));
    else
        printf("-%.1f", pow(-n, 1.0/3));
    return 0;
}
收藏点 1. 二分法

基于C语言实现的二分法_元宝Q的博客-博客_二分法c语言程序代码

2. pow函数 

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:华为机试-创新互联
文章起源:http://azwzsj.com/article/djisip.html