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

C 언어에서 미리 정의된 수학 함수 활용법 – pow로 세제곱근 구하기와 ceil 올림 함수 예제

C 언어는 math.h 헤더 파일을 통해 다양한 수학 함수를 기본으로 제공합니다. 별도의 복잡한 연산 로직을 직접 작성하지 않아도 거듭제곱, 제곱근, 올림·내림 등을 한 줄의 함수 호출로 처리할 수 있습니다. 이 글에서는 대표적인 수학 함수인 pow()ceil()을 활용하는 방법을 예제와 함께 살펴봅니다.

문제 상황

C 프로그래밍 언어를 사용해 임의로 주어진 숫자의 세제곱근(cube root)을 어떻게 구할 수 있을까요?

해결 방법

세제곱근은 거듭제곱 함수 pow()를 이용해 지수를 1/3으로 설정하면 간단하게 계산할 수 있습니다. 즉, x의 세제곱근은 pow(x, 1.0/3.0)과 같이 표현됩니다.

알고리즘

1단계: 실행 시점에 숫자를 입력받는다
2단계: 콘솔에서 값을 읽어온다
3단계: 결과를 계산한다 → result = pow(number, 1.0/3.0)
4단계: 계산 결과를 출력한다

예제 1: 세제곱근 구하기

다음은 입력받은 숫자의 세제곱근을 구하는 C 프로그램입니다.

#include <stdio.h>
#include <math.h>

int main(void) {
    int number;
    double result;

    printf("숫자를 입력하세요: ");
    scanf("%d", &number);

    result = pow(number, 1.0 / 3.0);   // 세제곱근 계산

    printf("\n%d의 세제곱근은 %.2f입니다.\n", number, result);
    return 0;
}

참고: 일부 교재에서는 conio.hgetch()를 사용하지만, 이들은 표준 C가 아닌 컴파일러 종속 기능입니다. 이식성을 위해 위 예제처럼 표준 입출력 함수만 사용하는 것이 좋습니다.

실행 결과

숫자를 입력하세요: 27
27의 세제곱근은 3.00입니다.

예제 2: ceil() 함수로 올림 처리하기

ceil()은 인자로 받은 값보다 크거나 같은 정수 중 가장 작은 값을 반환하는 올림 함수입니다. 특히 음수에서는 단순히 '소수점 버림'이 아니라 '큰 방향의 정수'로 올라간다는 점에 유의해야 합니다. 예를 들어 -4.2의 올림 결과는 -4.0입니다.

#include <stdio.h>
#include <math.h>

int main(void) {
    float num1, num2, num3;

    printf("실수 3개를 입력하세요:\n");
    scanf("%f %f %f", &num1, &num2, &num3);

    printf("number1 = %.1lf\n", ceil(num1));
    printf("number2 = %.1lf\n", ceil(num2));
    printf("number3 = %.1lf\n", ceil(num3));

    return 0;
}

실행 결과

실수 3개를 입력하세요:
3.7 -4.2 -6.7
number1 = 4.0
number2 = -4.0
number3 = -6.0

자주 사용되는 math.h 수학 함수 정리

  • pow(x, y) : x의 y제곱을 반환
  • sqrt(x) : x의 제곱근을 반환
  • cbrt(x) : x의 세제곱근을 반환 (C99 표준부터 지원)
  • ceil(x) : x를 올림한 정수를 반환
  • floor(x) : x를 내림한 정수를 반환
  • fabs(x) : x의 절댓값을 반환

참고로 C99 표준부터는 cbrt() 함수가 제공되므로, 세제곱근을 구할 때 pow(number, 1.0/3.0) 대신 cbrt(number)를 사용하면 더 직관적이고 정확하게 처리할 수 있습니다.