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 의 개념에 대해 잘 설명하고 있는 것 같습니다. 한번 시청해 보세요.

    https://www.youtube.com/watch?v=v-mmTEshdTA

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)