标签:小数 double 输入 print 它的 pac while 注意 bit
浮点数二分
模板
假如求平方根
#include<bits/stdc++.h> //万能头文件
using namespace std;
int main() {
double x;
cin>>x;
double l = 0, r = max(1, x);
while (r - l > 1e-8) {
double mid = (l + r) / 2;
if (mid * mid >= x) {
r = mid;
} else {
l = mid;
}
}
printf("%.6lf", l);
return 0;
}
假如求三次方根
给定一个浮点数 n,求它的三次方根。
共一行,包含一个浮点数 n。
共一行,包含一个浮点数,表示问题的解。
注意,结果保留 6 位小数。
?10000≤n≤10000
1000.00
10.000000
题目中保留6位小数,那么让r - l > 1e-8
要比有效位数多2 8的位置
注意因为要考虑负数,所以l不能从0开始,直接根据题目中的范围即可
#include<bits/stdc++.h> //万能头文件
using namespace std;
int main() {
double x;
cin>>x;
double l = -10000, r = 10000;
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;
}
标签:小数 double 输入 print 它的 pac while 注意 bit
原文地址:https://www.cnblogs.com/mrmrwjk/p/14752740.html