12
23

문제

다이아몬드 만들기

 

결과창

 

코드

#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "입력:" << endl;
    cin >> n;

    cout << "출력:" << endl;

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n - i; ++j)
        {
            cout << " ";
        }
        for (int k = 1; k <= 2 * i - 1; ++k)
        {
            cout << "*";
        }
        cout << endl;
    }

    for (int i = n - 1; i >= 1; i--)
    {
        for (int j = 1; j <= n - i; ++j)
        {
            cout << " ";
        }
        for (int k = 1; k <= 2 * i - 1; ++k)
        {
            cout << "*";
        }
        cout << endl;
    }


    return 0;
}

 

코드 해설

맨 처음 처음 5줄은 피라미드를 만드는 코드를 생각해서 작성했다. 

 

피라미드의 규칙을 보면, 앞에는 빈공간이 4, 3, 2, 1, 0 순으로 줄어들고 뒤에 별 문양은 1, 3, 5, 7, 9으로 늘어난다.

그러므로 빈 공간은 조건식은 최대값 - for문의 시작값을 빼주고 그만큼 공백을 추가해준다.

그리고 별은 2 * i - 1을 조건식으로 i가 1이면 별이 한개 추가되는 형식으로 해주었다.

 

다이아몬드를 만들려면 5번째 라인은 생략하기에 조건문을 최대 값의 -1을 해준다.

그뒤로 순서는 피라미드 역순으로 생성하면 된다.

'코딩 > 코드 문제 묶음' 카테고리의 다른 글

C++ 연습문제_3  (0) 2024.12.24
C++ 연습 문제_2  (1) 2024.12.23
오늘의 코딩 3일차  (1) 2023.10.20
오늘의 코딩 2일차  (0) 2023.10.19
오늘의 코딩 1일차  (1) 2023.10.17
COMMENT