온라인저지

[BOJ] 2442번: 별찍기 - 5

plzfday 2018. 7. 26. 15:01

https://www.acmicpc.net/problem/2442

재귀

#include <cstdio>

int N;

void PrintBlank(int n)
{
    if (n == 0)
        return;
    printf(" ");
    PrintBlank(n - 1);
}

void PrintAsterisk(int n)
{
    if (n == 0)
        return;
    printf("*");
    PrintAsterisk(n - 1);
}

void Star(int n)
{
    if (n == N + 1)
        return;
    PrintBlank(N - n);
    PrintAsterisk(2 * n - 1);
    puts("");
    Star(n + 1);
}

int main()
{
    scanf("%d", &N);
    Star(1);
    return 0;
}

반복문

#include <stdio.h>

int main(void)
{
    int i, j, k;
    int n;
    scanf("%d", &n);

    for (i = 1; i <= n; ++i)
    {
        for (j = n; j > i; --j)
            printf(" ");
        for (k = 0; k < 2 * i - 1; ++k)
            printf("*");
        printf("\n");
    }
    return 0;
}