문제
다이아몬드 만들기
결과창

코드
#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 |