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; } ```

如何确保输出的六位小数是准确的?

确保输出的六位小数准确,需要保证第七位数字不被进位,这样才能避免误差。

🏷️

标签

➡️

继续阅读