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
[953] [퀴즈] 1억 + 1억 = 얼마일까요?
장성호 [nasilso] 8828 읽음    2010-02-24 01:09
심플한 문제입니다.

1억 + 1억 = 얼마인가? 라는 퀴즈입니다.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    float fVal=100000000;
    for(int i=0;i<100000000;i++);
        fVal=fVal+1;
    ShowMessage(FloatToStr(fVal));
}


간단한 코드이니 눈으로 먼저 풀어서 답을 찾은 후에 ..


직접 실행해 보세요



힌트
힌트입니다.
다음 코드에서는 어떤 값이 메세지에 나타날까요?
void __fastcall TForm1::Button5Click(TObject *Sender)
{
    float fVal=1000;
    for(int i=0;i<1000;i++)
        fVal+=0.001;
    ShowMessage(FloatToStr(fVal));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
    float fVal=1000;
    int iSum=0;
    for(int i=0;i<10000;i++)
        fVal+=0.00001;

    ShowMessage(FloatToStr(fVal));
}
//---------------------------------------------------------------------------



...
Lyn [tohnokanna]   2010-02-24 01:10 X
유효범위 벗어나니 적당히 값 작살 날듯.. 계산해보기는 귀찮음...
박지훈.임프 [cbuilder]   2010-02-24 01:47 X
실행해보고 잠깐 황당해했는데...
1억 더하기 1억이라는 제목은 낚시고 실제 내용은 그게 아니군요.
단순 타이핑 실수가 어마어마한 결과 오류를 만들어내는 재미있는 사례네요.
장성호 [nasilso]   2010-02-24 02:36 X
Lyn군
계산하지 않아도 simple하게 답이 나오는데..  ㅋㅋ

Lyn군이 문제의 핵심을 지적해 주었네요.
김준석 [liberto]   2010-02-24 10:34 X
왜 저런 결과가 나오죠?
float로 변수를 선언해서 그런가요???
아제나 [azena]   2010-03-08 16:33 X
float형과 dobule형의 메모리 구조가 어떻게 이루어져 있는지 보면 답이 나오죠;;;;

float형과 double형은 엄청나게 큰 수의 계산이 가능하지만, 정밀도를 벗어나면 근사값으로 나온다는 -_-;
최규덕 [romair]   2010-06-01 13:03 X
문제의 핵심은 데이터형 따위가 아니라

for(int i=0;i<100000000;i++);  
        fVal=fVal+1;  

여기에 문법 오류겠죠;; 답은 100000001 .. 맞나요?

+ -

관련 글 리스트
953 [퀴즈] 1억 + 1억 = 얼마일까요? 장성호 8828 2010/02/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.