C 언어 재귀를 이용한 거듭제곱 계산

CBeginner
지금 연습하기

소개

이 랩에서는 C 프로그래밍에서 재귀 (recursion) 를 사용하여 주어진 숫자를 n 제곱하는 방법을 배웁니다.

C 파일 생성

~/project/ 디렉토리에 main.c라는 새 파일을 생성합니다. 여기에 C 코드를 작성할 것입니다.

함수 프로토타입 선언

power() 함수는 두 개의 정수를 입력으로 받아 거듭제곱 연산을 수행한 후 값을 반환합니다.

int power(int base, int exponent);

power() 함수 정의

power() 함수는 재귀적으로 자신을 호출하여 거듭제곱 연산을 수행합니다. 지수가 0 이면 1 을 반환합니다. 그렇지 않으면, 밑수에 power() 함수를 밑수와 지수보다 1 작은 값으로 호출한 결과를 곱한 값을 반환합니다.

int power(int base, int exponent)
{
    if(exponent == 0) // Base case
        return 1;
    else
        return base * power(base, exponent - 1); // Recursive case
}

사용자 입력 받기 및 power() 함수 호출

scanf() 함수를 사용하여 사용자로부터 밑수와 지수를 입력받은 다음, 이를 power() 함수에 인수로 전달합니다. 마지막으로, printf() 함수를 사용하여 결과를 표시합니다.

int main()
{
    int base, exponent, result;

    printf("Enter the base: ");
    scanf("%d", &base);

    printf("Enter the exponent: ");
    scanf("%d", &exponent);

    result = power(base, exponent);

    printf("%d^%d = %d", base, exponent, result);

    return 0;
}

코드 컴파일 및 실행

변경 사항을 저장하고 다음과 같이 gcc 컴파일러를 사용하여 프로그램을 컴파일합니다.

gcc main.c -o main

이제 터미널에서 다음 명령을 입력하여 프로그램을 실행합니다.

./main

출력

출력은 사용자가 입력한 지수만큼 밑수를 거듭제곱한 결과를 표시합니다.

요약

이 랩에서는 C 프로그래밍에서 재귀 (recursion) 를 사용하여 n 제곱을 계산하는 방법을 배웠습니다. 지수가 0 이 되는 기본 사례 (base case) 에 도달할 때까지 자체를 호출하는 재귀 함수를 사용하여 이를 수행했으며, 이때 값 1 을 반환합니다. 재귀 함수에서 얻은 값을 변수에 저장하고 printf() 함수를 사용하여 사용자에게 표시했습니다.

power() 함수는 C 프로그래밍에서 임의의 숫자를 주어진 거듭제곱으로 올리는 데 사용할 수 있습니다.