如何用二分法精确查找浮点数中的长尾词?

2026-04-12 03:501阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计338个文字,预计阅读时间需要2分钟。

如何用二分法精确查找浮点数中的长尾词?

题目:给定一个浮点数 $n$,求它的三次方根。输入格式:一行,包含一个浮点数 $n$。输出格式:一行,包含一个浮点数,表示 $n$ 的三次方根,保留6位小数。注意,结果保留6位小数,不足6位补0。数据范围:$-10 \leq n \leq 10$。

如何用二分法精确查找浮点数中的长尾词?

题目

给定一个浮点数 $n$,求它的三次方根。

输入格式 共一行,包含一个浮点数 $n$。

输出格式 共一行,包含一个浮点数,表示问题的解。

注意,结果保留 $6$ 位小数。

数据范围 $−10000≤n≤10000$ 输入样例: $1000.00$ 输出样例: $10.000000$

思路

浮点数二分可以直接分, 无需考虑边界情况 模板为:

while (r - l > 1e-保留小数位数 * 1e-2) { double mid = (l + r) / 2; if (k <= mid * mid * mid) r = mid; else l = mid; // 这里不能±1了, 会使得结果不准确 }

代码

#include <iostream> using namespace std; double n; int main() { scanf("%lf", &n); double l, r; l = -1000, r = 1000; while (r - l > 1e-8) { double mid = (l + r) / 2; if (n <= mid * mid * mid) r = mid; else l = mid; } printf("%.6lf", l); return 0; }

本文共计338个文字,预计阅读时间需要2分钟。

如何用二分法精确查找浮点数中的长尾词?

题目:给定一个浮点数 $n$,求它的三次方根。输入格式:一行,包含一个浮点数 $n$。输出格式:一行,包含一个浮点数,表示 $n$ 的三次方根,保留6位小数。注意,结果保留6位小数,不足6位补0。数据范围:$-10 \leq n \leq 10$。

如何用二分法精确查找浮点数中的长尾词?

题目

给定一个浮点数 $n$,求它的三次方根。

输入格式 共一行,包含一个浮点数 $n$。

输出格式 共一行,包含一个浮点数,表示问题的解。

注意,结果保留 $6$ 位小数。

数据范围 $−10000≤n≤10000$ 输入样例: $1000.00$ 输出样例: $10.000000$

思路

浮点数二分可以直接分, 无需考虑边界情况 模板为:

while (r - l > 1e-保留小数位数 * 1e-2) { double mid = (l + r) / 2; if (k <= mid * mid * mid) r = mid; else l = mid; // 这里不能±1了, 会使得结果不准确 }

代码

#include <iostream> using namespace std; double n; int main() { scanf("%lf", &n); double l, r; l = -1000, r = 1000; while (r - l > 1e-8) { double mid = (l + r) / 2; if (n <= mid * mid * mid) r = mid; else l = mid; } printf("%.6lf", l); return 0; }