창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


창조 팁
- '창조' 에 관한 팁을 올리는 곳입니다. 다수의 이미지가 필요하시면 아래 '이미지 자료실' 에 업로드 후 불러와 주세요..


LIST ALL
Posted by 느와르닷넷2004-05-16 17:46:19, Hit : 6295
[알고리즘] 팩토리얼 구하는 프로그램 작성
Homepage : http://coforld.wo.to/
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=tip&no=193
안녕하십니까..

입문한지 얼마 안되어 이런 강좌를 작성하는 우스운 놈입니다 ^^;

팁/강좌에 창조관련 기술만 올라오는것 같아서..

프로그래밍에서 반 이상을 차지하는 핵심 부분,

신기술이 나와도 꼭 적용되야만 하는, 바로 알고리즘을 소개해드릴까 합니다..

저도 초보라서 그리 어려운 알고리즘을 같이 공부할수가 없습니다...

이진 트리(-_-..........;;;)같은 어려운 알고리즘보다는 쉽게 풀고 이해할수 있도록 해보자 합니다..

잘못된 부분이 있으면 코멘트로 정정 요청을 하시면 됩니다..

저도 창조에 관해서는 미숙한 부분이 많기때문에..


0. 팩토리얼이란?
- 컴퓨터에서 표기는 n! (n 팩토리얼) 이런식으로 표기를 합니다.
n! 일경우 n! = 1*2*3*4*5*.....* n... 뭐 이런식이겠죠?
(예 : 5! 일경우 1*2*3*4*5)

1. 어떻게 창조에서 팩토리얼 구하기 프로그램을 작성해야 하는가?

- 일단 팩토리얼 구하는 프로그램은 팩토리얼의 반복성을 고려했을때 재귀호출을 이용하여 풀면 되지만 창조에서는 그렇게 되지 않는 관계로.. 간단히 반복문을 이용해서 사용할수가 있습니다.
(※ 참고 : 도대체 재귀호출 하면 뭐가 어쩐건데? 하시는 분들을 위해 간단한 소스를.. (C)
#include <stdio.h>

int factorial(int n)
{
if( n == 1 ) return 1;
else return factorial(n) * factorial(n-1);
}
int main(void)
{
int result;
result = factorial(5);
printf("결과 : %d\n",result);
}

팩토리얼 처리 부분은 단 2줄입니다. -_-;

2. 그러면 어떻게 코딩을 할까?
- 반복문을 생각하실수 있겠습니다.
3!을 구한다면 처음에 1을 곱하고, 2를 곱하고, 3을 곱하고 그 결과값을
변수에 저장하면 될텐데요..
자 생각해봅시다..
3! 이라면 1,2,3...
3까지 곱했을때까지~ 라는 조건이 포함되기 위해선..

반복
{
//코드
}까지( 카운트변수 > 3 );

이렇게 되야 할겁니다..
여기서 카운트변수 = 3이 아니라 카운트변수 > 3인 이유는 아시겠죠?
모르시겠으면 종이에 적으면서 변수의 값을 예측하며 생각해보시길 ^^;
자자.. 그러면 이제 정말 감이 잡히실떄가 된것 같은데.. (아닌가..)
이제 카운트만 올라가야 하는게 아니라 곱해져야 하죠..
실수 := 결과값;
이렇게 선언하시고

반복
{
결과값 := 아이 * 결과값;
카운트변수 := 카운트변수 + 1;
}까지( 카운트변수 > 3 );

이렇게 하면 될까요..?
아닙니다..
결과값을 선언만 했지 변수 초기화를 안했습니다.
그러므로 결과값 변수에는 0이 들어가있고.. (혹은 쓰레기값.,.?)
반복문에서 볼때..
0 := 1 * 0;
1 := 1 + 1;

0 := 2 * 0;
2 := 2 + 1;
머 이런식으로 진행되는 안타까운(?) 결과를 볼수 있겠군요..
그래서 결론은 결과값을 1로 초기화 시키고 곱해야 된다..
이말입니다..


자..
그렇다면 최종적으로..
소스를 볼까요오옹?

실수 : 결과;
실수 : 아이;

결과 := 1;
아이 := 1;

반복.
{
결과 := 아이 * 결과;
아이 := 아이 + 1;
}까지( 아이 > 5 );

결과텍스트.문자 := 수를문(결과);


자..
다됐습니다..

제가 워낙 설명을 못하는편이라 이해는 하셨을지 모르겠네요...
비록 아주 초보적인 프로그램이지만 시작이 반이다라는 말이 있듯이..
이런것도 한번쯤은 꼭 해봐야한다고 생각합니다;;
^^;;

강좌를 마치겠습니다 ^^;;;
우헤헤헤~ (퍼엉)

느와르닷넷   2004-05-16 PM 5:52:25  
앗..
소스자료실에 있는걸 미처 확인 못했네요;;
후음..
음냐..
헉... ㅠ_ㅠ;;;; 삭제 요청 들어오면 지우겠습니다;
nylon   2004-05-16 PM 6:12:36  
괜찮습니다 :)
안그래도, 제가 설명 올리려고 했는데, 이렇게 대신 올려주시니 반갑죠^^
느와르닷넷   2004-05-16 PM 6:14:40  
^^;; 그..그런가요..
으앗 nylon님이 내 글에 댓글을 달아주셨다 행복행복 -_-;
지상현   2004-09-06 PM 10:27:10  
딴지는 아니지만-_-; 팩토리얼은
5! = 5 x 4 x 3 x 2 x 1...아닌가요?-_-; 순서가 상관 없어 보이지만
0! 는 1이 나와야 할 것 같은데(.)
LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
117
   [웹 프로그램]에 대하여.... [5]
하얀종이 2002/11/04  5379
116
   [왕! 초보자용] 상태 표시줄 [2]
위자드 2003/01/01  4742
115
   [왕 일반적인 팁]창조로 압축프로그램 만들기!! [11]
이경근 2003/01/05  4945
114
   [영상강좌]창조 메뉴 관리창 완전정복!! [12]
손상진 2006/08/03  5060
113
   [역시 간단팁]URL을 메체재생기로 재생하라! [3]
靑色糖™ 2002/11/18  5865
112
   [알아두기] 그림판...그림할당해..
권선중 2003/12/26  4926
111
   [알고리즘]에 대하여....
하얀종이 2002/11/30  4981

   [알고리즘] 팩토리얼 구하는 프로그램 작성 [4]
느와르닷넷 2004/05/16  6295
109
   [실험]초기화명령어, 창 생성될때.. 어느 것이 먼저인가... [2]
Pueding 2003/01/07  4434
108
   [소스]환경문사용하기 [2]
김환욱 2002/09/19  5070
107
   [소스]창을 화면 가운데로 표시하기 [5]
김환욱 2002/09/19  6063
106
   [복잡한 연산 프로그램]에 대하여..(피보나치 수열) [3]
창조ⓕⓐⓝ 2003/01/05  5104
105
   [보안 프로그램]에 대하여.... [8]
하얀종이 2002/11/03  5374
104
   [변수와 상수]에 대해서... [5]
창조ⓕⓐⓝ 2002/12/23  4477
103
   [버그수정]수를교정문법의 응용과 활용방법 [2]
권선중 2003/10/07  4581
102
     [버그수정2] 전편 설명보셔야 이해가..
권선중 2003/10/10  4557
101
   [버그보고] "문을수" 함수 버그... [8]
지상현 2006/01/14  5597
100
   [버그리포트] 이름표#숫자.제목:="랄랄라"; 식의 명령을 쓸때.. [4]
손상진 2005/06/26  5132
99
   [버그] 파일속성바꿔()는 실수함수가 아니라 진리함수 [3]
지상현 2011/01/13  3932
98
   [버그] 파일날짜() 반환값은 실수? 문자?
지상현 2011/01/13  3776
97
   [버그] 주석에서 괄호를 쓰지 않는 것이 좋습니다. [1]
지상현 2011/01/14  4077
96
   [버그] 제거해() 인자는 '문자'가 아니라 'ㅎ객체' 입니다. [1]
지상현 2011/01/14  4431
95
   [버그] 인자수() = 어째선지 문자함수
지상현 2011/01/13  3841
94
   [버그] 사용자함수 심각한 버그 [1]
지상현 2011/02/02  5454
93
   [버그] 대화창보여() 'ㄷㅇ무효' + 여러 버튼 = 동작 안 함
지상현 2011/01/12  4668
LIST ALL   Prev [1][2][3][4][5][6][7][8][9] 10 ..[14] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인