0
点赞
收藏
分享

微信扫一扫

求解任意正整数n开根号的值,不用函数求解√2(根号二),二分法求根号,定义函数fun()求根号,二分法查找

吴wuwu 2022-03-21 阅读 54

求解任意正整数n开根号的值

提示:理解二分法、函数调用

定义函数double fun(int n)实现

#include<bits/stdc++.h> //万能函数头文件
using namespace std;
double fun(int n);     //定义一个求解根号的函数声明
int main()
{	
	int n;
	cout<<"输入想要求解根号的值n:";
	cin>>n;
	if(n<0)
	cout<<"输入有误";     //负数不能开根号
	if(n==0)
	cout<<"所求根号"<<n<<"等于:0";   //特殊根号值
	if(n>0)
	cout<<"所求根号"<<n<<"等于:"<<fun(n);
	return 0;
}
double fun(int n)     //函数定义
{
	double mid,low=0.0,hight=n;;     //高位值,低位值,中间值
	while(hight-low>=0.000000001)   //缩小mid的误差
	{
		mid=(hight+low)/2;
		if(mid*mid==n)              //恰好找到
		return mid;					//返回mid
		if(mid*mid<n)				//找小了
		low=mid;					//提升低位值
		if(mid*mid>n)				//找打
		hight=mid;    				//缩小高位值
	}
	return mid;						//误差小于0.0000000001返回mid
}

提示:二分法解题思路
二分法

总结

举报

相关推荐

0 条评论