void draw(int h) { // 높이가 0이라면 (그릴 필요가 없다면) if (h == 0) { return; } // 높이가 h-1인 피라미드 그리기 draw(h - 1); // 피라미드에서 폭이 h인 한 층 그리기 for (int i = 0; i < h; i++) { printf("#"); } printf("\n"); }
안녕하세요. 재귀부분에서 궁금한 점이 생겨 질문 드립니다.
코드중 11라인의
draw(h-1); 이부분에서 궁금증이 생겼습니다.
h가 10일경우 draw 함수가 돌아가는 것을 저는 이렇게 이해하였는데요.
draw(10-1);
for문에 h가 10 으로 들어가서 #이 10개 찍힘
draw(9-1);
for문에 h가 9로 들어가고 #이 9개 찍힘
...
.
이런식으로 계속
나중엔
draw(1-1);
for문에 h가 1
이런 방식으로 돌아가는것이 맞는지 .... 잘 모르겠어서 질문 드립니다!!!!!
함수가 재귀일때 동작하는 순서가 궁금합니다.!!!
comment