재귀의 방식을 사용하여 문자열을 찍는데,
문자열의 수가 1이 될때까지 재귀적으로 반복한다.

초기 문자열은 파라미터로 받는다.

단, 소스코드에서 함수는 1개이어야 한다.

Hint: 기본적으로 main함수는 존재한다.

------------ 급 수정 -----------
위의 문제가 난해하다는 의견을 받아 좀 쉽게 고쳐봅니다.
일단 문제는 간단하죠.
어떤 문자열을 받아서 1개씩 줄여가면서 출력합니다. 그리고
문자열의 수가 1이되면 종료하게 됩니다.

이걸 임의의 함수 A()를 써서 해결하면 (이런건 책이도 나오니 다들 알듯)
의사코드(Pseudo code)로 나타냅니다.

int A(string s)
{
  if(length of s == 1) return 1;
  print(s);
  remove last character of s;
  A(s);
}

int main()
{
   A("start");
}

위와 같이 쓰면 될겁니다.
그런데 문제에서 소스코드내 함수가 1개여야 한다고 했으므로,
임의의 A()와 같은 함수를 도입할 수가 없게 되죠.

그래서 main함수를 재귀적으로 돌려야 한다는 결론에 도달하게 됩니다.

----------------------------------------
맘껏 고민해보길 바랍니다.

 

본 게시물은 2011.01.04일 복구된 게시물 입니다. 첨부파일 및 이미지파일은 복구 되지 않았습니다. [자세한 내용 보기]