C언어공부중인데 return에 대한 궁금증입니다.
조회수 344회
int Factorial(int n)
{
if(n==0)
return 1;
else
return n * Factorial(n-1);
}
- Q1.
return 1
이 나타내는 의미가 뭔가요? - Q2. 숫자
1
대신 다른 숫자를 집어넣으면 안되는 건가요? (솔직히 return의 기능이 너무 헷갈립니다.)
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
팩토리얼 예제로 함수의 반환을 공부하고 계시군요.
n
의 팩토리얼을 어떻게 구하는지는 아시죠?n=0
이라면,1
이 답이다.n=1
이라면,n=0
일 때의 팩토리얼 값에1
를 곱한 것이 답이다.n=2
라면,n=1
일 때의 팩토리얼 값에2
을 곱한 것이 답이다.n=3
이라면,n=2
일 때의 팩토리얼 값에3
를 곱한 것이 답이다.n=4
라면...
이걸 무한히 반복할 순 없는 노릇이고...
음, 근데 잘 보니, 다음 둘 중 하나로 정리되는군요.n=0
이라면,1
이 답이다.n≠0
이라면,n-1
의 팩토리얼 값에n
을 곱한 것이 답이다.
좀더 멋있게 바꿔보죠.
n=0
이라면,1
이 답이다.- 그렇지 않다면,
n-1
의 팩토리얼 값에n
을 곱한 것이 답이다.
영어로 바꿔볼까요?
What is the number of factorial of n?
if n equals 0, the number is 1.
else, the number is n * factorial of n-1.아니 이건 아무래도 코드로 바꾸면...
int Factorial(int n) { if (n==0) return 1; else return n*Factorial(n-1); }
...바로 처음의 그 코드가 될 거 같네요?
질문으로 돌아오겠습니다. 질문자님의 질문은 다음과 같습니다.
return 1
은 무엇을 의미하는가?return 889
와 같은 다른 숫자를 넣으면 (안)되는가?- 함수 안에서
return
문의 기능은 무엇인가?
다시 한 번 스스로 답해 보려고 시도해 보시겠어요? 팩토리얼이 뭔지 아신다면, 이 정도는 하실 수 있습니다.
-
유튜브에서 잠깐 검색해 봤습니다.
파이썬으로 설명하는 동영상이기는 한데, return 의 개념에 대해 잘 설명하고 있는 것 같습니다. 한번 시청해 보세요.
댓글 입력