思路
- 获得输入数据
- 根据题意,采用二分法穷举结果
- 确定左右边界为-20~20
- 将精度控制在3位小数,输出时保留1位
- 当中间值mid的三次方小于实际值val,则将左边界值left更新为mid
- 当循环到精度满足条件时,输出左边界值left
Answer
#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;
}