二分模板
模板
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| bool check(double x) {}
double bsearch_3(double l, double r) { const double eps = 1e-6; while (r - l > eps) { double mid = (l + r) / 2; if (check(mid)) r = mid; else l = mid; } return l; }
|
题目描述:
给定一个浮点数 n,求它的三次方根。
输入格式
共一行,包含一个浮点数 n。
输出格式
共一行,包含一个浮点数,表示问题的解。
注意,结果保留 6 位小数。
数据范围
−10000≤n≤10000
输入样例:
1000.00
输出样例:
10.000000
分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include<iostream>
using namespace std;
double n,l,r,mid;
int main(){ scanf("%lf",&n); l=-10000,r=10000; while(r-l>=1e-8){ mid=(l+r)/2; if(mid * mid * mid< n) l=mid; else r=mid; } printf("%.6f",l); return 0; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include<stdio.h>
double n,l,r,mid;
int main(){ scanf("%lf",&n); l=-10000,r=10000; while(r-l>=1e-8){ mid=(l+r)/2; if(mid * mid * mid< n) l=mid; else r=mid; } printf("%0.6f",l); return 0; }
|
版权声明: 此文章版权由chen-yisen所有,如有转载,请注明明來自原作者