본문 바로가기

문제풀이

초보자를 위한 C++ 200제 42번 문제 해석 피라미드 출력

#include <iostream>
using namespace std;
int main()
{
	int offset = 4;
	for (int i = 1, j = 0; i <= offset; i++, j = 0)
	{
		for (int k = 1; k <= offset - i; k++)
			cout << " ";

		while (j != 2 * i - 1)
		{
			cout << "* ";
			j++;
		}
		cout << endl;
	}
	return 0;
}

2중 for문은 표를 그려서 머릿속에 구현을 그려보면 된다.

루프 횟수 i j (while문 진입 횟수)
( j 가 2*i-1이 되면
while문 진입 안함)
2*i -1 k(for문진입횟수) 출력 내용
1 1 0, 1 (1)

1 1,2,3(3) 공백3번 출력
* 1개 출력
2 2 0,1,2,3 (3) 3 1,2(2) 공백 2번 출력
*3개 출력
3 3 0,1,2,3,4,5 (5) 5 1(1) 공백 1번 출력
*5개 출력 
4 4 0,1,2,3,4,5,6,7 (7) 7 1(0) 공백 0번 출력
* 7개 출력