이 글에서는 사용자로부터 밑(base)과 지수(exponent) 두 개의 정수를 입력받아 거듭제곱을 계산하는 C 프로그램을 다룹니다.
예시
C 프로그램을 작성하기 전에 다음 예시를 통해 거듭제곱의 개념을 살펴보겠습니다.
- 밑(base) = 3
- 지수(exponent) = 4
- 거듭제곱 = 3 × 3 × 3 × 3 = 81
알고리즘
다음 알고리즘에 따라 프로그램을 작성합니다.
1단계: int형과 long형 변수를 선언한다.
2단계: 콘솔을 통해 밑(base) 값을 입력받는다.
3단계: 콘솔을 통해 지수(exponent) 값을 입력받는다.
4단계: while 반복문 실행 (지수가 0이 아닐 때까지)
i. value *= base (값에 밑을 곱함)
ii. --exponent (지수를 1씩 감소)
5단계: 결과를 출력한다.
정수 거듭제곱 계산 프로그램
다음 프로그램은 C 언어에서 주어진 숫자의 거듭제곱을 계산하는 방법을 보여줍니다.
#include<stdio.h>
int main(){
int base, exponent;
long value = 1;
printf("밑 값 입력:\n ");
scanf("%d", &base);
printf("지수 값 입력: ");
scanf("%d", &exponent);
while (exponent != 0){
value *= base;
--exponent;
}
printf("결과 = %ld", value);
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
실행 1:
밑 값 입력:
5
지수 값 입력: 4
결과 = 625
실행 2:
밑 값 입력:
8
지수 값 입력: 3
결과 = 512
실수 거듭제곱 계산 프로그램 (pow 함수 활용)
만약 실수의 거듭제곱을 구하고 싶다면, math.h 헤더 파일에 미리 정의되어 있는 pow() 함수를 사용하면 됩니다. 이 함수는 밑과 지수를 모두 double형으로 받아 처리할 수 있습니다.
#include<math.h>
#include<stdio.h>
int main() {
double base, exponent, value;
printf("밑 값 입력: ");
scanf("%lf", &base);
printf("지수 값 입력: ");
scanf("%lf", &exponent);
// 거듭제곱 계산
value = pow(base, exponent);
printf("%.1lf^%.1lf = %.2lf", base, exponent, value);
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
밑 값 입력: 3.4
지수 값 입력: 2.3
3.4^2.3 = 16.69
마무리
이처럼 C 언어에서는 반복문을 활용해 정수의 거듭제곱을 직접 구현할 수 있으며, 실수 연산이 필요한 경우에는 math.h의 pow() 함수를 사용하는 것이 효율적입니다. 두 방법의 차이를 이해하고 상황에 맞게 활용해 보세요.