AcWing 790. 数的三次方根——算法基础课题解
原文中文,约1300字,阅读约需3分钟。
📝
内容提要
给定一个浮点数n,使用二分法求它的三次方根,保留6位小数。
❓
Q&A
如何使用二分法求浮点数的三次方根?
使用二分法时,初始区间为[-22, 22],循环条件为(r - l) > 1e-8,逐步缩小区间直到找到三次方根。
为什么要使用1e-8作为循环条件?
使用1e-8是为了避免因四舍五入导致的误差,确保第七位数字准确,从而正确保留六位小数。
输入浮点数的范围是什么?
输入浮点数的范围为−10000≤n≤10000。
输出结果的格式是什么?
输出结果为一个浮点数,保留6位小数。
能否提供C语言的实现代码示例?
可以,C语言实现代码如下: ```c #include <iostream> using namespace std; int main() { double x; cin >> x; double l = -22, r = 22; while ((r - l) > 1e-8) { double mid = (l + r) / 2; if (mid * mid * mid >= x) r = mid; else l = mid; } printf("%.6lf", l); return 0; } ```
如何确保输出的六位小数是准确的?
确保输出的六位小数准确,需要保证第七位数字不被进位,这样才能避免误差。
🏷️