<개인공부>/[C언어, C++]

[C언어/C++] pow, sqrt 함수에 대해서(루트함수, 제곱, 제곱근)

BlockDMask 2019. 1. 4. 00:39
반응형

안녕하세요. BlockDMask 입니다

오늘은 (저는) 자주 쓰지는 않지만 꼭 알아둬야하는 함수를 두개 묶어서 가지고왔습니다.

바로 pow, sqrt 함수인데요. 중학교때 제곱과 제곱근(루트) 배우셨죠?

그걸이제 C언어, C++에서 사용해 볼겁니다! 그럼 시작해보겠습니다.

1. C/C++ pow 함수 원형과 사용법

- 헤더파일 : C언어 <math.h> / C++ <cmath>

- C언어에서의 함수 원형 : double pow(double base, double n)


- C++11에서의 함수 원형

1. double        pow(double base, double n)

2. float           pow(float base, float n)

3. long double pow(long double base, long double n)

(C++에서는 함수 오버로딩이 가능하기 때문에 같은 이름의 함수라도 매개변수를 다르게 선언할 수 있습니다.) 


- pow 함수가 하는일 : base가 되는 숫자의 n 제곱을 구하는 것입니다

(base의 n승이라고도 표현하고, 기호로는 base ^ n 으로도 표현합니다.)

- 저희한테 익숙한 표현방법은 이것이죠  


- pow 함수 사용법

1) 10의 2제곱을 구한다고 했을 때.
-> pow(10, 2)
// 암묵적 형변환에 의해서 10은 (float)10 이런식으로 들어갈 것 입니다.


2) 2.2의 3.3 제곱을 구한다고 했을 때.
-> pow(2.2, 3.3)


2. pow 함수 예시

1) 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//C언어만 사용하시는 분들은 해당 헤더만 포함하세요.
//#include<stdio.h> 
//#include<math.h>
 
//C++용 헤더
#include<iostream>
#include<cmath>
using namespace std;
 
int main(void)
{
    printf("> C언어\n");
    printf("10 ^ 2 = %f\n", pow(102));
    printf("2.2 ^ 3.3 = %f\n\n", pow(2.23.3));
 
    //아래는 C++사용자들을 위한 코드 입니다.
    cout << "> C++" << endl;
    cout << "10 ^ 2 = " << pow(102<< endl;
    cout << "2.2 ^ 3.3 = " << pow(2.23.3<< endl;
 
    system("pause");
    return 0;
}
cs

2) 결과


3. C/C++ sqrt 함수 원형과 사용법

- 헤더파일 : C언어 <math.h> / C++ <cmath>

- C언어에서의 함수 원형 : double sqrt(double x)


- C++11에서의 함수 원형

1. double        sqrt(double x)

2. float           sqrt(float x)

3. long double sqrt(long double x)

4. double        sqrt(T x) // T는 template를 뜻합니다. (template는 아래 링크 남겨두겠습니다.)

(C++에서는 함수 오버로딩이 가능하기 때문에 같은 이름의 함수라도 매개변수를 다르게 선언할 수 있습니다.) 


- sqrt 함수가 하는일 : 매개변수 x로 들어온 숫자에 루트를 씌워서 계산한 값을 반환해주는 일을 합니다.

즉, 루트 x를 구해주는 함수입니다. 를 구해주는 함수입니다. (제곱근을 구해주는 함수)


- sqrt 함수 사용법

1) 루트 9를 구한다고 했을때

-> sqrt(9)


2) 루트 85.4를 구한다고 했을때

-> sqrt(85.4)



4. sqrt 함수 예시

1) 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//C언어만 사용하시는 분들은 해당 헤더만 포함하세요.
//#include<stdio.h> 
//#include<math.h>
 
//C++용 헤더
#include<iostream>
#include<cmath>
using namespace std;
 
int main(void)
{
    double a = 9;
    double b = 85.4;
 
    printf("> C언어\n");
    printf("sqrt(9) = %f\n", sqrt(a));
    printf("sqrt(85.4) = %f\n",sqrt(b));
 
    //아래는 C++사용자들을 위한 코드 입니다.
    cout << "> C++" << endl;
    cout << "sqrt(9) = " << sqrt(a) << endl;
    cout << "sqrt(85.4) = " << sqrt(b) << endl;
 
    system("pause");
    return 0;
}
cs


2) 결과

- 주저리

C언어랑 C++을 분리한다고는 했는데, 사실 뭐 C++에서는 C에 있는걸 다 포함 합니다. 

C++의 표준 입출력인 cin, cout을 사용하는 것을 보여드리고 싶기도 했고, 헤더도 다르다는 것을 알려드리기 위해서 위의 예제에서 분리를 해 보았습니다.

C++에서도 서식을 지정해서 출력하고 싶은 경우에 printf를 사용해도 무방합니다. 

- 글 읽어주셔서 감사합니다. 질문같은게 있다면 댓글 남겨주세요~

반응형