#6. 数的三次方根
数的三次方根
给定一个浮点数 ,求它的三次方根。
输入格式
共一行,包含一个浮点数 。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留 位小数。
数据范围
输入样例:
1000.00
输出样例:
10.000000
已按 OJ 可直接使用的 1.in/1.out ... 25.in/25.out 生成 25 组“求三次方根(保留 6 位小数)”测试数据,覆盖:正/负数、0、极值 ±10000、很小小数、非完全立方、接近立方边界、以及舍入敏感用例等。
下面按 1..25 逐组说明每组主要在卡哪些常见错误做法(正确做法通常是二分/牛顿迭代,输出 %.6f;负数三次方根应为负):
- 1000.00(样例):基础正确性(10)。
- 0:卡边界(别除零/别死循环),输出应为
0.000000。 - 1:基础正确性(1)。
- -1:卡负数处理(应输出 -1,不是 NaN)。
- -27:负的完全立方(应 -3);卡把负数取绝对值后忘记加符号。
- 27:正的完全立方(应 3);卡精度/收敛判定。
- 2:非完全立方;卡只会处理完全立方/或精度不足。
- -2:非完全立方且为负;卡“负数无法二分/无法开根”这种错误。
- 10000:上边界;卡二分区间设置太小、或浮点精度/迭代次数不够。
- -10000:下边界;卡负数边界、以及二分区间没覆盖负数。
- 0.001 (= 1e-3):很小正数(结果 0.1);卡二分/牛顿在小数范围不稳定、或精度不足。
- -0.001:很小负数(结果 -0.1);卡负小数符号处理。
- 0.1:常见小数;卡浮点误差/输出格式(必须 6 位小数)。
- -0.1:负小数;卡符号与收敛。
- 7.999999(略小于 8):接近立方边界(2^3);卡收敛精度与舍入(不应直接输出 2.000000)。
- 8.000001(略大于 8):同上,另一侧;卡比较/停止条件写错造成偏差。
- 9261 (= 21^3):较大完全立方;卡精度/迭代次数(要输出精确到 6 位)。
- -9261:负的较大完全立方;卡负数处理。
- (1.234567)^3(构造输入):舍入敏感,正确输出应精确到
1.234567;卡精度不足导致最后几位不对。 - (-1.234567)^3(构造输入):同 #19 但为负;卡符号 + 舍入。
- 3.1415926(π 近似):非完全立方、无规律;卡算法泛化能力与精度。
- -3.1415926:负的非完全立方;卡负数处理。
- 9999.9999(接近上边界但非整数):卡大数小数混合输入的精度与收敛。
- 1e-9:极小正数;卡二分左右边界设置(比如固定 [-100,100] 但精度不够)、或牛顿初值/停止条件导致 0。
- -1e-9:极小负数;卡负数 + 极小量(容易被误判成 0 或 NaN)。
后续你继续发题,我也会同样:生成 zip + 逐组解释每组卡什么常见错误。