[ 재귀함수 이해하기 ] 1. 다음 프로그램의 결과값은?
#include <stdio.h>
int sum(int);
int main()
{
int hap;
hap = sum(5);
printf("hap = %d\n", hap);
return 0;
}
int sum(int n2)
{
if(n2==1) return 1;
else return n2 + sum(n2-1);
}
[ 재귀함수 이해하기 ] 2. 다음 프로그램의 결과값은?
#include <cstdio>
int go(int);
int main()
{
printf("go = %d\n",go(7));
return 0;
}
int go(int n)
{
return (n==1) ? 1 : n+go(n-2); // 삼항연산자 - 조건 ? 참 : 거짓
}
[ 재귀함수 이해하기 ] 3. 다음 프로그램의 결과값은?
#include <cstdio>
int power(int, int);
int main()
{
int n;
printf("power = %d\n",power(5,3));
return 0;
}
int power(int x, int y)
{
if(y == 0) return 1;
else return x * power(x, y-1);
}
[ 재귀함수 이해하기 ] 4. 다음 프로그램의 결과값은?
#include <cstdio>
int quiz(int, int);
int main()
{
int n;
n = quiz(2, 5);
printf("quiz = %d\n", n);
return 0;
}
int quiz(int n, int m)
{
if(n == m) return 1;
else if(n > m) return 0;
else return n + quiz(n+1, m);
}
[ 재귀함수 이해하기 ] 5. 다음 프로그램의 결과값은?
#include <cstdio>
int go(int);
int main()
{
int n;
printf("go = %d\n",go(8));
return 0;
}
int go(int x)
{
if(x == 1) return 1;
else if(x==2) return 2; //if( x==1 || x==2 ) return x;
else return go(x-1) + go(x-2);
}
[ 재귀함수를 반복문처럼 사용하기 - 예제 1 ] 재귀함수를 이용해서 1부터 10까지 출력해보세요
#include <cstdio>
void go(int);
int main()
{
int n;
go(1);
return 0;
}
void go(int x)
{
if(x >10) return;
printf("%d ", x);
go(x+1);
}
[문제1] 10부터 1까지 출력해보세요
[문제2] 2부터 20까지 짝수만 출력해보세요
[문제3] 1부터 19까지 홀수만 출력해보세요
[문제4] 1부터 main함수에서 입력받은 수 까지 출력해 보세요
[문제5] main함수에서 입력받은 수부터 1까지 거꾸로 출력해 보세요
[문제6] main함수에서 입력받은 수의 구구단을 출력해 보세요
[문제7] 2단부터 9단까지 출력해 보세요
[ 재귀함수 이해하기 - 예문1 ] 다음 프로그램의 결과를 생각해 보세요
#include <cstdio>
void go(int);
int main()
{
int n;
go(1);
return 0;
}
void go(int x)
{
if(x > 10) return;
printf("%d ", x);
go(x+1);
printf("(%d) ", x);
}
[ 재귀함수 이해하기 - 예문2 ] 다음 프로그램의 결과를 생각해 보세요
#include <cstdio>
void go(int);
int main()
{
int n;
go(24);
return 0;
}
void go(int x)
{
if(x == 0) return;
printf("%d ", x);
go(x/2);
printf("(%d) ", x);
}
※ 위 예문을 이해해보고 다음 문제를 풀어보세요
[ 재귀함수 이해하기 - 문제 1 ] 다음과 같이 재귀함수를 이용해서 출력하시오
※ 안된다고 너무 쉽게 포기하지 말고 자꾸 해봐야 실력이 늘어요 하다 하다 정 안되면 아래 소스를 보면서 이해해보세요^^
| [ 9-1번] 5 4 3 2 1 ==1== ==2== ==3== ==4== ==5== |
[ 9-2번] 1 2 3 4 5 ==5== ==4== ==3== ==2== ==1== |
[ 9-3번] 1 * 2 ** 3 *** 4 **** 5 ***** 5 ***** 4 **** 3 *** 2 ** 1 * |
[ 재귀함수 이해하기 - 문제 2 ] 다음과 같이 재귀함수를 이용해서 출력하시오
| [ 9-4번] * *** ***** ******* ********* *********** *********** ********* ******* ***** *** * |
[ 9-5번] 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 3 * 9 = 27 3 * 8 = 24 3 * 7 = 21 3 * 6 = 18 3 * 5 = 15 3 * 4 = 12 3 * 3 = 9 3 * 2 = 6 3 * 1 = 3 |
[ 9-6번] ********** ********** ********** ********** ********** ########## ########## ########## ########## ########## |
[ 재귀함수 이해하기 - 문제 3 ] 다음과 같이 재귀함수를 이용해서 출력하시오
| [ 9-7번] 1 3 5 7 9 10 8 6 4 2 |
[ 9-8번] ....1 ...22 ..333 .4444 55555 55555 .4444 ..333 ...22 ....1 |
[ 9-9번] 55555 .4444 ..333 ...22 ....1 ....1 ...22 ..333 .4444 55555 |
'청소년 IT경시대회' 카테고리의 다른 글
| 청소년 IT경시대회 C언어(반복문) 모의고사 - 7회 (0) | 2026.08.15 |
|---|---|
| 청소년 IT경시대회 C언어 모의고사 - 6회 (0) | 2026.08.15 |
| 청소년 IT경시대회 C언어 모의고사 - 5회 (0) | 2026.08.15 |
| 청소년 IT경시대회 C언어 모의고사 - 4회 (0) | 2026.08.15 |
| 청소년 IT 경시대회 C언어 모의고사 - 3회 (0) | 2026.08.15 |


