'내가 재귀함수에 대해서도 이렇게 구현을 잘 못하는구나.'라는 생각을 했다.
그런데, 구현은 얼추 맞는 것 같다.
1 #include <stdio.h>
2
3 #define FACTORIAL_NUM 12
4
5 int fac(int n);
6
7 int main(int argc, char * argv[])
8 {
9 int fac_n = FACTORIAL_NUM;
10
11 printf("fac(8) %d\n", fac(fac_n));
12 }
13
14 int fac(int n)
15 {
16 int rec_val;
17 if(n == 1) {
18 printf("last n = %d\n", n);
19 return 1;
20 }
21
22 rec_val = fac(n-1);
23
24 printf("n = %4d, fac(n-1) = %d\n", n, rec_val);
25 return n * rec_val;
26 }
댓글 없음:
댓글 쓰기