반응형

안녕하세요.

C++을 새롭게 공부를 하게 되면서 기존에 했던 알고리즘을 다시 작성하고 있습니다. 

이를 포스팅 하려고 합니다. 필요상 말을 편하게 쓰도록 하겠습니다.


재귀함수를 이용해서 팩토리얼 연산을 하는 방법을 알아보도록 하자.

재귀는 자기 자신을 계속적으로 호출하는 방법이다.


팩토리얼 연산은 다음과 같다.

3! (3 팩토리얼) = 3 * 2 * 1 = 6 이러한 식으로 연산을 하는 것을 팩토리얼이라고한다.


<팩토리얼 연산의 예>



연산을 보면 N이 1씩 줄어드는 것을 알 수 있다.

이를 이용해서 재귀함수를 구현한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int Factorial(int n){
 
    if (n == 1){
        return 1;
    }
    return n * Factorial(n - 1);
 
}
 
int main(){
 
    int n;
    cout << "N = ?" << endl;
    cin >> n;
    cout << Factorial(n) << endl;
 
    return 0;
}
cs





C++로 구현한 팩토리얼 연산 방법이다.

Factorial(int n)이 재귀함수이다.


아까도 말했듯 n이 1씩 줄어들고 n의 최소값은 1이라는 것을 알 수 있다.

그렇기 때문에 조건문을 통해서 1보다 작아지지 않도록 값을 설정하고(종료조건)


우리가 아는 팩토리얼 연산법을 return 값으로 집어 넣는다.


글로만 보면 이해를 하기 어려울 수 있지만 한번 코드를 작성해서 돌려보면 이해하기 쉬울 것이다.

<결과값>



반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기