C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[632] 나눗셈, 뺄셈만으로 제곱근 구하기..
DoyongID [doyongid] 9433 읽음    2007-03-02 12:18
우연히 네이버 기사에서 봤는데...

수학함수 지원이 안되는 프로그래밍에 요긴한 팁이더군요..

http://news.naver.com/hotissue/ranking_read.php?ranking_type=popular_day&date=2007-03-02§ion_id=003&office_id=020&article_id=0000391179&seq=1

예를 들어 6의 제곱근을 구한다면

6 * 100 = 600 // 100을 곱한다.

600 / 2 = 300 // 2로 나눈다.

300 - 1 = 299 // 오름차순으로 1씩 증가시켜 뺀다.
299 - 2 = 297
297 - 3 = 294
294 - 4 = 290
.
.
.
.
24 - 24 = 0 // 0보다 작거나 같게 되는 지점에서 24를 얻는다.

24를 맨 위에서 곱한 100의 제곱근인 10으로 나눈다.

답 = 2.4

맨위에 100대신 10000을 곱하면 더 정밀한 값이 나오지 않을까 싶네요..
장성호 [nasilso]   2007-03-05 00:13 X
히야~~!
대단하네요
어떻게 저 방법을  생각해 낼수 있었지...
시간날때 함 코딩해봐야겠네요..

DoyongID [doyongid]   2007-03-05 11:54 X
모바일 프로그래밍에 쓸려고 만들었습니다.^^ 소숫점이 지원안되기 때문에 100배로 해서 리턴하게 만들었고요..

// 제곱근 구하기 (100배의 값으로 리턴)
public static int sqrt(int pValue)
{
    long    i = 0, Value;

    Value = pValue * 10000 / 2;
       
    while(Value > 0)
        Value -= (++i);
       
    return (int)i;
}

+ -

관련 글 리스트
632 나눗셈, 뺄셈만으로 제곱근 구하기.. DoyongID 9433 2007/03/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.