华为机试-创新互联
目录
我们一直强调网站设计、成都网站设计对于企业的重要性,如果您也觉得重要,那么就需要我们慎重对待,选择一个安全靠谱的网站建设公司,企业网站我们建议是要么不做,要么就做好,让网站能真正成为企业发展过程中的有力推手。专业的建站公司不一定是大公司,成都创新互联作为专业的网络公司选择我们就是放心。描述
输入描述:
输出描述:
解题过程
提交代码
学习代码
代码一
代码二
收藏点
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