소프트웨어/C++

[2004년 기말 10번] 3의 배수 출력 - 재귀호출

카켈 2007. 3. 4. 21:41





목적
  - 재귀 호출을 이해한다.

문제

코드

#include <iostream>

using namespace std;

void print_3(int aIn)
{
 if(aIn < 1)
  return;

 else
 {
  if(aIn % 3 == 0)
  {
   cout << aIn << " ";
   print_3(--aIn);
  }

  else
  {
   print_3(--aIn);
  }
 }

 return;
}

int main(void)
{
 print_3(50);
 cout << endl;
 return 0;
}

해설
  - aIn < 1 조건을 한 이유는 --aIn 이후 1에서 --aIn 을 하면 0 이 출력되기 때문입니다.
  - 재귀 호출은 효율적이면서도 위험한 결과를 얻을수 있는 코딩입니다. 예전 문제들을 잘 보시기 바랍니다.
  - 배수 구하는건 나머지가 0인 원리를 이용해서 구하면 쉽게 얻을수 있습니다.

참고
  - 유사 문제