2021. 2. 2. 09:02ㆍC#
이번에는 마지막 연습문제인 팩토리얼구현에 대해 알아보겠습니다.
이번에는 팩토리얼 매서드를 구현해서 5!를 구하는 프로그램을 짜보겠습니다.

일단 이번엔 메인함수안이 아닌 따로 매서드를 구현하는 것이기 때문에 매서드이름과 반환형 그리고 매개변수를 정해보았습니다.

정수형을 반환할 것이기 때문에 int형에 매개변수로는 원하는 팩토리얼 숫자 하나만을 구할것이기 때문에 int형 매개변수 n만을 정했습니다.
그리고 일단 1을 반환하도록 코드를 작성하였습니다.
일단 팩토리얼을 구현하기에 앞서 재귀함수라는 말에 대해 이해해볼 필요가 있습니다.
일단 의미는 함수 자신이 자기자신을 또 불러오는 함수라고 할 수 있습니다.
예를 들어보겠습니다.
func(n) 이라는 함수가 n + func(n - 1)을 반환하는 함수가 있다고 해보겠습니다.
그림으로 살펴보게되면

다음과 같이 볼수있습니다. 팩토리얼 함수도 다음과 같이 구현해볼수있겠다는 생각을 할 수 있을것입니다.

처음엔 다음과 같이 구현을 하면 될 것같아서 디버깅을 하려 했습니다. 하지만 F5를 누르려는 순간 문득 이런고민을 하게 되었습니다.
만약 n이 계속 감소해서 음수가 되어도 계속해서 실행이 될것이라는 생각을 하게되었습니다.
그래서 마지막으로 n <= 1이 된다면 1을 반환하도록 함수를 다시 작성하였습니다.

위와같이 작성하고 출력을 해보았습니다.

5! = 5 * 4 * 3 * 2 * 1 = 120이므로 제대로 출력이 된 것을 확인 할 수있었습니다.
이것으로 마지막 연습문제였더 팩토리얼 함수 구현에 관한 포스팅을 마치겠습니다.
'C#' 카테고리의 다른 글
| 016(C#) TRPG(입장 -> 전투) (1) | 2021.02.06 |
|---|---|
| 016(C#) TRPG (캐릭터 생성) (0) | 2021.02.05 |
| 015(C#) 연습문제2 (0) | 2021.02.02 |
| 015(C#) 연습문제1 (0) | 2021.01.31 |
| 014(C#) 오버로딩 (0) | 2021.01.22 |