루트 값을 알면 포물선운동도 가능 할꺼 같아서 찾아봤다
보통의 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 |