Lab 4 1 Sum Factorial Fibonacci Binary sumint
� Lab 4 -1: 재귀함수 Sum, Factorial, Fibonacci, Binary sum(int n) // 1 ~ n 까지 합 if (n<=1) return n else return n + sum(n-1) � factorial(int n) if (n<=1) return 0 else return n*factorial(n-1) � fibo(n) // fibo(0)=0, fibo(1)=1, 1, 2, 3, . if (n<=1) return n else return fibo(n-1) + fibo(n-2) � binary(int n) // 10진수 2진수 if (n<2) printf(“%d”, n) else { binary(n/2) printf(“%d”, n%2) } 프로그래밍랩 – 4 순환 재귀함수 2
Lab 4 -2: Hanoi Tower #include <stdio. h> void hanoi_tower(int n, char from, char tmp, char to) { if( n==1 ) printf("원판 1을 %c 에서 %c으로 옮긴다. n", from, to); else { // 1 ~ n-1 을 임시 장소에 이동 hanoi_tower(n-1, from, to, tmp); // 제일 밑에 있는 원판을 이동 printf("원판 %d을 %c에서 %c으로 옮긴다. n", n, from, to); // 1 ~ n-1 을 임시 장소에서 목적지로 이동 hanoi_tower(n-1, tmp, from, to); } } main() { hanoi_tower(4, 'A', 'B', 'C'); } 프로그래밍랩 – 4 순환 재귀함수 3
Lab 4 -4: 구조체 연습 � 복소수 ◦ 정의 : x = real + img*i typedef struct complex { int real; int img; } COMPLEX; ◦ 연산함수 작성 �COMPLEX add(COMPLEX x, COMPLEX y) � z = x + y z = add(x, y) �COMPLEX sub(COMPLEX x, COMPLEX y) � z = x – y z = sub(x, y) ◦ 출력함수 작성 �print_complex(COMPLEX *x) � (a + bi) 식으로 출력 �img 가 음수인 경우 처리 주의 � (-2 + -2 i) X � (-2 – 2 i) O void main() { COMPLEX x, y, z; scanf("%d %d", &x. real, &x. img); scanf("%d %d", &y. real, &y. img); z = add(x, y); print_complex(&x); printf(" + "); print_complex(&y); printf(" = "); print_complex(&z); printf("n"); z = sub(x, y); print_complex(&x); printf(" - "); print_complex(&y); printf(" = "); print_complex(&z); printf("n"); } 프로그래밍랩 – 4 순환 재귀함수 9
- Slides: 14