티스토리 뷰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <stdio.h> //printf() 와 scanf() 함수 #include <stdlib.h> //malloc() free() system() 함수 #include <stdbool.h> //bool 변수 //시스템별 헤더포함설정 #if defined(_WIN32) || defined(_WIN64) //윈도우용 #include <crtdbg.h> //_CrtSetDbgFlag() _CrtBreakAlloc() #endif //시스템별 콘솔명렁어설정 #if defined(_WIN32) || defined(_WIN64) //윈도우용 #define CLEAR "cls" #else //POSIX(리눅스) & Mac OS #define CLEAR "clear" #endif //자기자신을 호출하여 1부터 특정한수까지의 곱을하는 프로그램을 만들겠습니다. //코드의 흐름은 변수를 입력받아서 재귀(Recursive)함수로 답을 구해내겠습니다. //전역변수 int g_iVar = 0; //입력값을 저장할 변수 int g_iAnswer = 0; //정답을 저장할 변수 bool Init(); //초기화 함수 int Run(int x); //실행함수 int main() //메인함수 { if (!Init()) //초기화 실행 { printf("초기화에 실패했습니다.\n"); return 0; } const int iVar = g_iVar; //전역변수 사용 int* const iAnswer = &g_iAnswer; //지역변수 선언한뒤 전역변수 할당 *iAnswer = Run(iVar); //재귀함수 시작 printf("1 부터 %d 까지의 곱 :: %d 입니다\n", iVar, *iAnswer); //정답 출력 return 0; //종료 } bool Init() { int* const iVar = &g_iVar; //포인터를 따로만들어서 함수가 독립적으로 실행될수 있게 하겠습니다. printf("정수를 입력해주세요.\n"); //질문 출력 if (scanf("%d", iVar) != 1) //입력값이 1이 안되면 초기화 실패. return false; return true; } int Run(int x) { int iVar = x; //지역변수에 저장 return iVar == 1? 1 : iVar * Run(iVar - 1); //자기자신을 호출하는 함수 삼항연산자를 사용했습니다. } | cs |
재귀함수(Recursion)를 이용해서 1부터 N까지의 수를 구합니다.
int 말고 unsigned long long으로 변수를 선언했으면 더큰 수를 저장할수 있어서 좋았을거같습니다
'C > Console' 카테고리의 다른 글
함수포인터를 이용한 계산기 (0) | 2018.11.12 |
---|---|
유클리드 호제법 N개의 정수 최대공약수 구하기 (0) | 2018.11.12 |
학생관리 기록부 (0) | 2018.11.11 |
10개의 원소를 입력받아 정렬한뒤 출력 (0) | 2018.11.10 |
소인수분해 프로그램 (0) | 2018.11.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- flying bee
- wxWidgets
- css slider
- gettext
- stdarg.h
- Visual Studio 2017
- fyling fly
- Generic()
- JS
- dropdown list
- responsive slider
- #C
- C11
- 오류
- CSS 슬라이더
- _Generic()
- slider
- 1000 자리 계산기
- .editorconfig
- C
- 도메인 가격비교
- HTML
- SCSS @for
- CSS
- scss slider
- scanf()
- xgettext
- 도매인 가격비교
- C++
- #비주얼스튜디오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함