题解 | #求解立方根#javascript:void(0);
求解立方根
http://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
额,一看这就是投机取巧来的,我连二分法都没用
- 就是遍历,求三次方跟,而且因为要求保留一位小数,我就直接在一位小数里找最接近的了
- 注意遍历的范围,如果|原值|>1,所以就在原值的正负范围内找就可以了;否则要在1以内找,我是发现0.3的用例检测错误才想到的!!
// 遍历一个值,求其立方的结果,最后和val进行比较看是否相等,即二者差值 < Number.EPSILON
// 但是遍历的时候可以用二分法来提高效率
let num = parseFloat(readline()), absNum = Math.abs(num) > 1?Math.abs(num): 1
let delat = 10000, index = 21
for (let i = - absNum; i <= absNum; i += 0.1) {
if (Math.abs((i*i*i - num)) < delat) {
delat = Math.abs((i*i*i - num));
index = i
}
}
console.log(index.toFixed(1))
