计算一个浮点数的立方根,不使用库函数。保留一位小数。
数据范围:val的绝对值小于等于20
输入描述:待求解参数,为double类型(一个实数)
输出描述:输出参数的立方根。保留一位小数。
输入:19.9
输出:2.7
输入:2.7
输出:1.4
// 获得输入数据
// 根据题意,采用二分法穷举结果
// 确定左右边界为-20~20
// 将精度控制在3位小数,输出时保留1位
// 当中间值mid的三次方小于实际值val,则将左边界值left更新为mid
// 当循环到精度满足条件时,输出左边界值left
#include<stdio.h>
int main() {
double val;
scanf("%lf", &val); //得到输入数据
double l = -20;
double r = 20;
while (val - l * l * l > 0.001) {
double mid = (l + r) / 2;
if (mid * mid * mid < val) {
l = mid;
} else {
r = mid;
}
}
printf("%.1f", l);
return 0;
}