Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 거듭제곱(pow) 함수 직접 구현하기

거듭제곱 함수는 밑(base)지수(exponent)라는 두 개의 숫자가 주어졌을 때, 밑을 지수만큼 곱한 결과를 구하는 데 사용됩니다. 즉, 결과값은 '밑의 지수 제곱'이 됩니다.

거듭제곱의 기본 개념

다음 예시를 통해 개념을 쉽게 이해할 수 있습니다.

밑(Base) = 2
지수(Exponent) = 5

2^5 = 32

따라서, 2의 5제곱은 32입니다.

C++ 거듭제곱 함수 예제

아래는 C++로 거듭제곱을 계산하는 전체 프로그램입니다.

#include <iostream>
using namespace std;

int main() {
    int x, y, ans = 1;

    cout << "Enter the base value: \n";
    cin >> x;

    cout << "Enter the exponent value: \n";
    cin >> y;

    for(int i = 0; i < y; i++)
        ans *= x;

    cout << x << " raised to the power " << y << " is " << ans;

    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Enter the base value: 3
Enter the exponent value: 4
3 raised to the power 4 is 81

코드 상세 설명

이제 위 프로그램이 어떻게 동작하는지 단계별로 살펴보겠습니다.

1. 사용자 입력 받기

먼저 사용자로부터 밑과 지수 값을 입력받습니다. 해당 코드는 다음과 같습니다.

cout << "Enter the base value: \n";
cin >> x;

cout << "Enter the exponent value: \n";
cin >> y;

변수 x에는 밑 값이, 변수 y에는 지수 값이 저장됩니다.

2. for 루프로 거듭제곱 계산하기

거듭제곱은 지수 값만큼 반복되는 for 루프를 통해 계산됩니다. 매 반복마다 밑 값이 변수 ans에 곱해지며, 루프가 모두 끝나면 최종 거듭제곱 결과가 ans에 저장됩니다.

for(int i = 0; i < y; i++)
    ans *= x;

예를 들어 밑이 3이고 지수가 4라면, ans는 1 → 3 → 9 → 27 → 81 순서로 갱신되어 최종적으로 81이 됩니다.

3. 결과 출력하기

마지막으로 계산된 거듭제곱 값을 화면에 출력합니다.

cout << x << " raised to the power " << y << " is " << ans;

마무리

이처럼 C++에서는 표준 라이브러리의 pow() 함수를 사용하지 않고도 간단한 for 루프만으로 거듭제곱을 직접 구현할 수 있습니다. 이 방식은 거듭제곱 연산의 원리를 이해하는 데 큰 도움이 되며, 알고리즘 학습에도 유용합니다. 참고로 실무에서는 음수 지수나 큰 수 처리를 위해 <cmath> 헤더의 pow() 함수를 사용하는 것이 일반적입니다.