본문 바로가기

프로그래밍/C

[C언어]제곱을 구하는 pow함수! 음수의 제곱도 구할 수 있을까?

반응형

안녕하세요. pow함수가 음수제곱도 지원하는 줄 알고 프로그래밍하다가 4시간을 날려먹은 한노입니다. 그말 그대로 pow함수는 음수의 제곱을 구할 수 없습니다! pow함수의 지수값에 음수를 넣으면 0을 리턴하게 되죠. 하지만 조금만 생각해보면 pow함수로 음수의 제곱을 계산할 수 있게되죠.

 

2의 제곱     -    2   4   8   16 

2의 음의제곱 - 1/2 1/4 1/8 1/16

 

보면 감이 오시나요? 1을 어떤 수의 제곱으로 나누면, 그 어떤 수의 음의 제곱값을 알 수 있습니다!

그럼 이를 프로그램으로 구현해보겠습니다.

 

if(지수값>=0)1*pow(2,지수값);

else          1/pow(2,fabs(지수값));

 

참 쉽죠?

참고로 fabs는 수의 절대값을 구하는 함수입니다! 위 예제에서는 지수값의 절대값을 구해 pow함수가 제대로 동작할 수 있게 해주죠.

그럼 저처럼 시간낭비하시는 일 없으시길 바라며 글 마무리합니다.

반응형