C++ 다이아몬드 출력하기
C++을 몇 일 접하지 않은 상태에서는
꽤나 까다로울 수 있을 것이다.
Tip은 중간의 별의 갯수를 지정한다.
size와 blank(공백)을
while문 안에서 for문을 2개 돌린다.
여기서 while문을 2개 돌리는데
하나는 별이 늘어나도록
나머지 하나는 별이 줄어들도록 돌리는 것이다.
int main()
{
int size;
int blank;
int star = 1;
cout << ":";
cin >> size; // 중간의 별 갯수
blank = size / 2;
while (1) //위쪽 별 갯수 늘어나도록
{
for (int x = 0; x < blank; x++){
cout << " ";
}
for (int y = 0; y < star; y++){
cout << "*";
}
if (blank <= 0)
break;
blank--;
star += 2;
cout << endl;
}
cout << endl;
int blank2 = 1;
int star2 = size - 2; //size 임의의 수
while (1) //밑쪽 별 갯수 줄어들도록
{
if (size % 2 == 1) // 홀수
{
for (int i = 0; i < blank2; i++){
cout << " ";
}
for (int j = 0; j < star2; j++){
cout << "*";
}
cout << endl;
blank2 += 1;
star2 -= 2;
if (star2 < 0)
break;
}else{
for (int i = 0; i < blank2; i++){
cout << " ";
}
for (int j = 0; j <= star2; j++){
cout << "*";
}
cout << endl;
blank2 += 1;
star2 -= 2;
if (star2 < 0)
break;
}
}
return 0;
}