int f(int n) { if(n == 0)return 1; else return n * f(n - 1); } void main() { int su; x: cout << "팩토리얼을 구할 수를 입력해 주세요 : "; cin >> su; if(su < 0) { cout << "잘못된 범위를 입력하셨습니다.!" << endl << endl; goto x; } cout << f(su) << endl; }
프로그램 실행화면
팩토리얼을 재귀함수를 사용해서 만든 프로그램이다. 재귀 함수는 많이 사용하지는 않지만 알아두면 좋은 녀석이다. 재귀함수를 사용해야만 만들 수 있는 알고리즘이 있기 때문이다.
자기가 자기를 호출하는 형식이라 이해하고 잘 활요하기가 쉽지는 않지만 말이다. 재귀함수에는 항상 끝나는 조건식이 필요하다. 그것이 if(n == 0)return 1; 이부분이다.
모든 재귀함수에는 끝나는 점이 필요하다. 이것만 주의해서 사용하면 프로그램이 실행중에 뻗어버리는 일은 없을 것이다.