답변 1
1
안녕하세요? 질문&답변 도우미 Soobak 입니다.
얼마든지 다양한 방법으로 구현할 수 있습니다.
예를 들어, 간단하게 증가 연산자를 사용하여 다음과 같이 구현할 수 있습니다.
void draw(int n)
{
int i = 0;
while (i++ < n)
{
printf("*");
}
printf("\n");
}
핵심은 인수로 전달되는 n
번 만큼의 '반복' 을 진행하는 것이므로,
함수 내부의 코드는 해당 조건을 만족시키도록 얼마든지 다양하게 구현할 수 있습니다.
(비효율적일 수 있지만, 학습 목적으로 다양한 연산자들을 활용한 예시를 첨부 드려봅니다.)
void draw(int n)
{
int i = 0;
while (i != n)
{
printf("*");
i = (i + 1) % (n + 1);
}
printf("\n");
}
또한, 강의 9.6 재귀 호출 에서 다루는 재귀 함수를 이용하여 다음과 같이 구현할 수도 있습니다.
void drawRecursion(int n, int i)
{
if (i >= n)
{
printf("\n");
return;
}
printf("*");
drawRecursion(n, i + 1);
}
void draw(int n)
{
drawRecursion(n, 0);
}
궁금하신 내용이 감소연산자(--
)를 사용하지 않고도 동일한 결과를 내는 다른 방법들이 있는지에 대한 호기심이라고 생각되어 다양한 방법을 소개 드려봅니다.
혹시, 제가 질문의 의도를 잘못 생각하였다면, 궁금하신 부분에 대해서 조금 구체적으로 편하게 댓글 남겨주시면 감사하겠습니다.