求解立方根
程序员文章站
2024-03-22 23:13:28
...
一、题目描述
不使用库函数,计算一个浮点数的立方根,要求返回的立方根也是浮点数,并且只保留一位小数位
二、代码实现
1、暴力法
先得到最后一个立方小于等于input的整数,然后再一次次加0.1,找到第一个立方大于input的浮点数 i,然后根据情况打印 i 或者 (i-0.1)即可。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
double input = sc.nextDouble();
double i = 0.0;
for (i=0; i<input/2; i++) {
if (i*i*i <= input && (i+1)*(i+1)*(i+1) > input) {
break;
}
}
while (i*i*i <= input) {
i += 0.1;
}
//取与input相差最小的那一个
if (Math.abs((i-0.1)*(i-0.1)*(i-0.1)-input) < Math.abs(i*i*i-input)) {
System.out.println(String.format("%.1f", i-0.1));
} else {
System.out.println(String.format("%.1f", i));
}
}
}
}
2、牛顿迭代法
下一篇: 海量数据处理的top K个数的问题