首页 > 其他 > 详细

Codeforces Round #231 (Div. 2)

时间:2014-02-22 13:53:56      阅读:353      评论:0      收藏:0      [点我收藏+]

Sqrt(x)

 Total Accepted: 8010 Total Submissions: 37050My Submissions

Implement int sqrt(int x).

Compute and return the square root of x.


分二分法和牛顿迭代法两种解法,详细请看:

http://blog.csdn.net/kenden23/article/details/14543521


二分法:

//2014-2-20 update		
	int sqrt(int x) 
	{
		double e = 0.0000001;
		double a = 0, b = x;
		double m = a + ((b-a)/2);
		double res = m*m - double(x);
		while (abs(res) > e)
		{
			if (res < 0) a = m+1;
			else b = m-1;
			m = a + ((b-a)/2);
			res = m*m - double(x);
		}
		return m;
	}

牛顿迭代法:

//2014-2-20 update		
	int sqrt(int x) 
	{
		if (x == 0) return 0;
		double xi1 = x, xi = 1;
		while (int(xi1) != int(xi))
		{
			xi = xi1;
			xi1 = (double(x)/xi + xi)/2;
		}
		return xi;
	}




Codeforces Round #231 (Div. 2)

原文:http://blog.csdn.net/accelerator_/article/details/19670387

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!