浮点二分开平方
作者:互联网
开平方
题目描述
给定一个数,写出算法,将其开方,结果保留6位小数。
输入一个数(可以是小数),输出结果为其平方根,结果保留6位小数
题目分析
采用浮点数二分法,对齐进行找值。假定中值为最终解,给定上下限,然后求中值;比较中值平和与x的大小,并修改其上下限,依次循环
代码实现
#include<iostream>
#include<windows.h>
using namespace std;
// 开平方
int main(){
double x;
scanf("%lf", &x);
double l = 0, r = x;
while(r - l >= 1e-8) // 比保留小数位数多 2 。保留 6 位小数,则 1e-8
{
double mid = (l + r) / 2;
if(mid * mid >= x) r = mid;
else l = mid;
}
printf("%lf\n", l);
return 0;
}
运行结果
输入
3.5
输出
1.870829
总结
二分法思维固然简单,但是精度需要得以控制,精度控制不当,则容易陷入死循环。
标签:二分,开平方,double,保留,mid,二分法,浮点,小数 来源: https://blog.csdn.net/qq_38496329/article/details/104740882