企业网站建设售后服务内容,物业服务企业的品牌建设,做注册任务的网站有哪些,网站域名需要每年续费一、题目描述
计算一个浮点数的立方根#xff0c;不使用库函数。保留一位小数。
数据范围#xff1a;∣val∣≤20 。
二、输入描述
待求解参数#xff0c;为double类型#xff08;一个实数#xff09;
三、输出描述
输出参数的立方根。保留一位小数。
四、解题思路…
一、题目描述
计算一个浮点数的立方根不使用库函数。保留一位小数。
数据范围∣val∣≤20 。
二、输入描述
待求解参数为double类型一个实数
三、输出描述
输出参数的立方根。保留一位小数。
四、解题思路
从输入中读取一个浮点数初始化低位low为0高位high为输入的值判断输入的值的正负情况如果小于0将标志flag设为1并将输入取绝对值如果输入小于1则将高位设为1进入循环使用二分查找逼近立方根在每次循环中计算中间值target为low和high的平均值计算d为输入值除以target的平方减去target的差判断d是否在接近0的范围内-0.1到0.1之间如果是则找到了近似的立方根根据标志flag判断输出的结果是否带负号使用String.format保留一位小数并输出结果继续循环直到输入结束
五、JavaScript算法源码
function cubeRoot(val) {// 初始化低位low为0let low 0;// 高位high为输入的值let high val;let flag 0;// 如果小于0将标志flag设为1并将输入取绝对值if (val 0) {flag 1;val -val;if (val 1.0) {high 1;} else {high val;}// 如果输入小于1则将高位设为1} else if (val 1) {high 1;}while (true) {let target low (high - low) / 2;let d val / (target * target) - target;// 近似的立方根if (d -0.1 d 0.1) {return flag ? -parseFloat(target.toFixed(1)) : parseFloat(target.toFixed(1));} else if (d 0.1) {low target;} else {high target;}}
}六、效果展示 下一篇华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】附详细解题思路
本文收录于华为OD机试JavaScript真题A卷B卷
每一题都有详细的答题思路、详细的代码注释、样例测试订阅后专栏内的文章都可看可加入华为OD刷题群私信即可发现新题目随时更新全天CSDN在线答疑。