C

[C언어]재귀 - 삼각형 출력

stdlib.h 2016. 3. 29. 19:57

이문제는 N을 입력하면 N 층의 삼각형을 하나씩 늘려가며 출력하는것이다.

코드는 다음과 같다.


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
#include <stdio.h>
 
void print(int start, int flag, int count);
 
int main(void)
{
    int n;
    scanf("%d", &n);
    print(1,1,n);
}
void print(int start, int flag, int count)
{
    printf("*");
    if (start < count)
    {
        if (start == flag)
        {
            puts("");
            print(1, flag + 1, count);
        }
        else
        {
            print(start + 1, flag, count);
        }
    }
}
cs

N 을 입력하면 처음에 * 한개,
start == flag 이므로 flag가 1늘어나서 전해지므로 다음에 **, 이런식으로 반복된다.