별 찍기 직각삼각형 3
문제
테두리의 행과 열 번호는 출력하지 않아도 된다.
0 1 2 3 4
0 *
1 * *
2 * * *
3 * * * *
4 * * * * *
해답
좌표 합을 이용한 방식
#include <stdio.h>
int main(void)
{
for (int row = 0; row < 5; row++)
{
for (int col = 0; col < 5; col++)
{
if (row + col >= 4)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
각 칸의 좌표를 (row, col)이라고 생각하면 별이 찍히는 칸은 row + col >= 4이다.
공백과 별을 계산해서 출력
#include <stdio.h>
int main(void)
{
for (int row = 0; row < 5; row++)
{
for (int col = 0; col < 4 - row; col++)
{
printf(" ");
}
for (int col = 0; col <= row; col++)
{
printf("*");
}
printf("\n");
}
}
한 행에서 필요한 공백과 별의 개수는 다음과 같다.
- 0행: 공백 4개, 별 1개
- 1행: 공백 3개, 별 2개
- 2행: 공백 2개, 별 3개
- 3행: 공백 1개, 별 4개
- 4행: 공백 0개, 별 5개