浮点二分开平方

开平方

题目描述

给定一个数,写出算法,将其开方,结果保留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

总结

二分法思维固然简单,但是精度需要得以控制,精度控制不当,则容易陷入死循环。

发布了64 篇原创文章 · 获赞 9 · 访问量 6377

猜你喜欢

转载自blog.csdn.net/qq_38496329/article/details/104740882
今日推荐