inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

연습 문제

팩토리얼 문제

270

hz0227

작성한 질문수 2

0

static int Factorial (int n)

{

return n * Factorial(n-1);

}

static void Main(string [] args)

{

int ret = Factorial(5);

Console.WriteLine(ret);

}

 

Factorial(5)가 int ret으로 할당되었고, Factorial(n)이므로 n이 5로 삽입되었다는걸까요?

static int Factorial 구문에서 반환값이

return n * Factorial(n-1); 이렇게 표기되어 있어서 n-1 이므로 Factorial(5)가 나오기 위해서는 n에 6이 할당되어야 하는게 아닌가요?

각각 static 구문의 의미랑 로직이 어렵네요

핳 모르겠습니다 도와주세영 .. 🥲

 

 

C#

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

여기에 나와 있는 코드는 팩토리얼 함수를 재귀적으로 구현한 것입니다. 팩토리얼 함수 Factorial(n)은 n이 1 이하가 될 때까지 계속해서 n과 Factorial(n-1)의 곱을 반환합니다.

즉, Factorial(5)는 처음에 5로 시작하여 5 * Factorial(4), 4 * Factorial(3), 3 * Factorial(2), 2 * Factorial(1)의 순서로 계산되며, Factorial(1)이 반환되는 시점에서 재귀 호출은 종료됩니다. 따라서 n에 6이 할당될 필요는 없습니다. 처음 호출될 때 n의 값이 5이고, 이후 재귀 호출을 통해 값이 감소합니다.

static 키워드는 해당 메서드나 변수가 인스턴스 없이 클래스 이름으로 직접 호출될 수 있음을 의미합니다. static int Factorial(int n) 구문에서 staticFactorial 메서드가 MyClass.Factorial(5)와 같이 클래스를 통해 직접 호출될 수 있음을 나타냅니다.

return n * Factorial(n-1);에 대한 로직은 다음과 같습니다:

  1. Factorial(5)가 처음 호출되면, n은 5입니다.
  2. 결과값을 구하기 위해 5 * Factorial(4)가 계산됩니다.
  3. 이 과정이 Factorial(1)이 호출될 때까지 계속됩니다.
  4. Factorial(1)에서는 1을 반환하고, 재귀 호출이 종료되어, 차례대로 곱셈이 이루어지며 최종 결과가 계산됩니다.

따라서, Factorial(5)5 * 4 * 3 * 2 * 1을 계산하여 120을 반환합니다.

Generic에 대한 질문 있습니다.

0

94

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

200

2

다형성 캐시 문제

0

111

3

.

0

70

1

프로퍼티 강의 질문 있습니다.

0

77

1

이후 커리 질문

0

85

1

static

0

90

2

강의에는 새로운 클래스 파일을 생성하면...

0

72

1

생성자의 이름 선언

0

64

1

9:03 Divide(10 , 3) 부분 질문입니다

0

87

1

깃허브 관련 질문 있습니다.

0

238

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

249

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

305

2

Activator 질문있습니다

0

331

1

이넘 타임 선언 질문

0

344

1

Sort 오름차순, 내림차순

0

323

1

질문 있습니다.

0

248

1

Sort함수 질문있습니다.

0

264

1

다형성 함수 질문 있습니다.

0

221

1

질문이 있습니다.

0

225

1

섹션2 연습문제 질문입니다.

0

213

1

안녕하세요~서버에 대해 질문이 있습니다.

1

281

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

393

1

visual studio2022에서 c# 프로젝트 로드가 안됩니다

0

1158

3