2010. 1. 26. 09:46 알고리즘

루트 값을 알면 포물선운동도 가능 할꺼 같아서 찾아봤다

보통의 c에서는 float연산이 되지만 모바일에서는 float연산이 되지 않아

my_sqrt(int x)에서 x*=10000의 연산을 통해서 소수점 두째 자리 까지 찍게 하였다

그래서 만약에 my_sqrt(2)의 값은 1.414... 이렇게 나오지만 여기에서는 141로 나온다

---------------------------------------------------------------------------

MC_knlSprintk(str,"215=> %d\n",my_sqrt(215));
MC_grpDrawString(ScreenFB , 10, 10, str,strlen(str), &g_GC);

---------------------------------------------------------------------------

int my_sqrt(int x)
{
 //루트의 근을 구하는 공식
 //4를 넣으면 200이 나온다 이것은 2.00이다
 //x *=10000;이 연산으로 인해 뒤에 두자리가 나왓다
 int guess_y = 1;
 int quotient;
 int average;
 int error = 10;
 
 if(x < 0)
  return x;

 x *=10000;
 while(error > 1)
 {
  quotient = x/guess_y;
  average = (guess_y + quotient) / 2;
  error = abs(average - guess_y);
  guess_y = average; 
 }

 return guess_y;
}


'알고리즘' 카테고리의 다른 글

barcode 128a 소스 (java,c 사용가능)  (0) 2011.07.13
swap  (0) 2011.04.27
도스명령어 년 월 일  (0) 2010.03.24
완성형 조합형을 이용한 한글 조합  (0) 2010.01.26
삼각함수 테이블  (0) 2010.01.26
posted by 욱이다