递归专题---[2]开根号

一曲冷凌霜 提交于 2020-02-11 20:59:44

0.简介

开根号,在C++中sqrt就可以解决,实际怎么写呢?

1.推导开根号计算方法

这里采用连分数逼近方法,例如对2开根号可以做如下操作。

公式

然后发现这个式子是可以递归的,就写出如下代码。

double mySqrt(double x)
{
	static int t = 0;
	return t++==10 ? 0 : 1+((x-1)/(mySqrt(x)+1));
}

int main()
{
	cout << mySqrt(2) << endl;
	return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!