sqrt 구현

개발/미완 / / 2006. 12. 12. 14:45
갑자기 생각나서 그냥 한번 구현해본 루트값 계산하기

limit 잘못 주면 stack overflow 발생함 ㅡ_-+



 

#include "stdio.h"
#include "math.h"

void zsqrt(double low, double up, int target, int limit)
{
	double mid = low+(up-low)/2;
	if (!limit)
	{
		printf("%f\n",mid);
		printf("%f\n",sqrt(target));
		return;
	}
	
	if ( mid*mid > target ) zsqrt( low, mid, target, --limit );
	else zsqrt( mid, up, target, --limit );
}

int main(int arg, char* args[])
{
	zsqrt( 3, 4, 15, 30);
	return 0;
}
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기