재귀함수 2개 → 피라미드 그리기
#incldue <stdio.h>
int recur(int a, int b) {
if (a <= 1)
return a * b;
else
return a * recur(a-1, b+1) + recur (a-1, b); // 3 * recur(2, 3) + recur(2, 2)
// 3 * (2 * recur(1, 4) + recur(1, 3)) + 2 * recur(1, 3) + recur(1, 2)
// 3 * 11 + 8
// 41
}
void main() {
int a = 3, b = 2;
printf("%d\n", recur(a, b)); // 41
}
#include <stdio.h>
int sub(int n) {
if(n==0) return 0;
if(n==1) return 1;
return (sub(n-1) + sub(n-2)); // sub(3) + sub(2) // sub(2) + sub(1) + sub(1) + sub(0)
// sub(1) + sub(0) + sub(1) + sub(1) + sub(0) = 3
}
void main() {
int a = 0;
a = sub(4);
printf("%d", a); // 3
}
#include <stdio.h>
int fib(int n) {
if (n==0) return 0;
if (n==1) return 1;
return (fib(n-1) + fib(n-2)); // fib(4) + fib(3) // fib(3) + fib(2) + fib(2) + fib(1)
// fib(2) + fib(1) + fib(1) + fib(0) + fib(1) + fib(0) + 1
// fib(1) + fib(0) + 1 + 1 + 0 + 1 + 0 + 1
// 5
}
void main() {
fib(5); // 5
}
// fib() 함수의 호출 횟수: 15회
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 2020년 1회 실기 기출문제 풀이 (0) | 2024.10.11 |
---|---|
[정보처리기사] C언어 특강 60강 이후 정리(printf 출력순서, ++ -- 연속, fork) (0) | 2024.10.10 |
[정보처리기사] C언어 특강 53~57강 정리(재귀함수) (0) | 2024.10.09 |
[정보처리기사] C언어 특강 49~52강 정리(static 변수) (0) | 2024.10.09 |
[정보처리기사] C언어 특강 37~48강 정리(함수에 주소전달) (0) | 2024.10.06 |