재귀함수
- 함수에서 자기 자신을 호출하는 형태의 함수
- 사용자가 임의로 설정해둔 종료값을 만날 때까지 무한하게 반복되는 구조이다.
- 반복문과 다른 이유는 확장해나가는 구조를 수행할 때 재귀로만 해결할 수 있는 경우가 있다.
#include <iostream>
using namespace std;
void recFunc(int cur, int max);
int main()
{
recFunc(0, 10);
}
void recFunc(int cur, int max)
{
if (cur >= max)
{
return;
}
else
{
cout << "야호" << endl;
recFunc(cur + 1, max);
}
}
팩토리얼
- 반복적으로 확장해나가는 것 중에 팩토리얼을 구현해봅시다.
=> 3팩토리얼(3!) = 3 * 2 * 1
- 이런식으로 1이 될때까지 1씩 줄여가면서 곱하는 형태로 구현합니다.
#include <iostream>
using namespace std;
int factorial(int n);
int main()
{
cout << factorial(3) << endl;
return 0;
}
int factorial(int n)
{
if (n == 1) return 1;
return n * factorial(n - 1);
}