재귀를 사용한 팩토리얼 계산

CBeginner
지금 연습하기

소개

이 랩에서는 C 프로그래밍 언어에서 재귀 (recursion) 를 사용하여 주어진 숫자의 팩토리얼 (factorial) 을 구하는 방법을 배웁니다. 팩토리얼은 '!'로 표시되며, 주어진 숫자보다 작거나 같은 모든 양의 정수의 곱입니다. 예를 들어, 5 의 팩토리얼은 5 x 4 x 3 x 2 x 1 = 120 입니다.

main() 함수 초기화

main 함수에서 입력된 값과 계산된 팩토리얼을 저장할 변수를 선언합니다. 그런 다음 사용자에게 팩토리얼을 계산할 값을 입력하라는 메시지를 표시합니다.

#include <stdio.h>

int main()
{
    int num, factorial;
    printf("Enter a number: ");
    scanf("%d", &num);
}

재귀를 사용하여 팩토리얼을 계산하는 함수 생성

이제 정수 매개변수 'num'을 받아 정수 값을 반환하는 'factorial'이라는 함수를 생성합니다. 이 함수에서 재귀를 사용하여 주어진 숫자의 팩토리얼을 계산합니다. 주어진 숫자의 값이 1 또는 0 과 같으면, 두 값 모두의 팩토리얼이 1 이므로 1 을 반환합니다. 주어진 숫자가 1 보다 크면 재귀를 사용하여 팩토리얼을 계산하고 값을 반환합니다.

int factorial(int num)
{
    if(num == 0 || num == 1)
    {
        return 1;
    }
    else
    {
        return num * factorial(num-1);
    }
}

main 함수에서 팩토리얼 함수 호출 및 결과 출력

이제 'main' 함수 내에서 'factorial' 함수를 호출하고 입력된 값을 매개변수로 전달합니다. 그런 다음 반환된 값을 'factorial' 변수에 저장하고 결과를 콘솔에 출력합니다.

#include <stdio.h>

int factorial(int num);

int main()
{
    int num, factorial;
    printf("Enter a number: ");
    scanf("%d", &num);

    factorial = fact(num);
    printf("Factorial of %d is %d", num, factorial);

    return 0;
}

프로그램 컴파일 및 실행

이제 프로그램이 작성되었으므로 파일을 '~/project/' 디렉토리에 'main.c'로 저장합니다. 터미널을 열고 'main.c' 파일이 있는 디렉토리로 이동합니다. 다음 명령을 사용하여 프로그램을 컴파일합니다.

gcc main.c -o main

프로그램이 성공적으로 컴파일되면 다음 명령을 사용하여 프로그램을 실행합니다.

./main

'main.c' 전체 코드

필요한 경우 이 코드를 참조하십시오.

#include <stdio.h>

int factorial(int num);

int main()
{
    int num, factorial;
    printf("Enter a number: ");
    scanf("%d", &num);

    factorial = factorial(num);
    printf("Factorial of %d is %d", num, factorial);

    return 0;
}

int factorial(int num)
{
    if(num == 0 || num == 1)
    {
        return 1;
    }
    else
    {
        return num * factorial(num-1);
    }
}

요약

이 랩에서는 C 언어에서 재귀 (recursion) 를 사용하여 주어진 숫자의 팩토리얼을 계산하는 방법을 배웠습니다. 팩토리얼을 찾기 위해 재귀를 사용하는 함수와 숫자를 입력받아 팩토리얼 함수를 호출하는 main 함수를 만들었습니다.