제곱을 사용할 때마다 입에 빙빙 돌아서 스크랩합니다.
간혹 올림, 내림 할일이 있으면 10나눈뒤 다시 10곱하는 방법을 썼는데.. 이게 다 함수로 있었군요 -_-;;
출처 : http://211.228.163.31/30stair/floor_ceil/floor_ceil.php#power
1. xy 구하기
23 , 3 4 ...등의 거듭제곱 값은 pow 함수로 구할 수 있습니다.다음은 pow 관련 함수의 메뉴얼 입니다.
pow , powf ,powl 함수를 사용하기 위해서는 math.h 를 포함시켜야 하고 함수의 원형(prototype)이 주어져 있습니다.
이 중 pow 함수의 원형을 설명하면 ,
인자로 주는 두 수는 double 형이어야 합니다. 만약 정수 값으로 인자로 줄 경우에는 cast 연산자를 사용하여 형 변환을 해 주는 것이 안전한 사용 법 입니다.
- pow 함수는 두 수를 인자로 받고
- xy한 수를 구해서 돌아 옵니다.
pow((double)a,(double)b); //a,b 가 정수형 변수 일 때구한 값을 출력하거나 변수로 받을 때 정수 값(변수)으로 돌려 받기 위해서는 마찬가지로 형 변환을 해 주고 , 실수(double 형)으로 받을 때 는 그대로 사용하면 됩니다.
- printf("%d",(int)pow((double)a,(double)b); //결과를 정수로 출력
- printf("%.2lf",pow((double)a,(double)b); // 구한 값을 double 형으로 소수이하 두자리 까지 출력
123456789101112131415161718#include <stdio.h>
#include <math.h>
int
main()
{
int
x,y;
x=2;
y=3;
printf
(
"%d\n"
,(
int
)
pow
(
double
(x),
double
(y)));
// 2^3
x=3;
y=4;
printf
(
"%d\n"
,(
int
)
pow
(
double
(x),
double
(y)));
//3^4
x=2;
printf
(
"%.3lf\n"
,
pow
(
double
(x),0.5));
//√2 를 소수 세자리
}
2. sqrt(x)
방정식 x*x = 4 을 근은 x = 2 혹은 x = -2 입니다.를 만족하는 근을 특별히 거듭제곱 근이라 한다. 거듭 제곱근에는 양의 제곱근,음의 제곱근이 있습니다. 이 경우 x =2 가 양의 거듭제곱근이고 , x=-2 가 음의 거듭 제곱근입니다. 가 되는 x 는 x= 2 혹은 x= -2 입니다.
이 때 x 가 양수인 2 를 √4 라고 합니다.
√4 = 2몇 가지 √ 값을 보면√1 = 1 √4 = 2 √9 = 3 √16 = 4 ...√3 은 얼마일까요? 대충 1.xxxx 가 되리라는 것은 추측 할 수 있습니다.정수 값을 대입 후 정수 값으로 출력하기 위해서는 sqrt 함수는 받는 값이 double , 돌려 주는 값도 double 형이라 다음과 같이 cast 연산자를 사용하면 됩니다.
12345678910#include <stdio.h>
#include <math.h>
int
main()
{
double
a;
a =3.0;
printf
(
"%lf"
,
sqrt
(a));
}
12345678910#include <stdio.h>
#include <math.h>
int
main()
{
int
a;
a =4;
printf
(
"%d"
,(
int
)
sqrt
((
double
)a));
}
3. floor(x)
그림과 같이 경사진 곳에 구슬을 둔다고 생각합니다.
이 함수를 gauss 함수라고 하고 , 기호 혹은 [x] 로 표현 합니다.
- 2 와 3 사이에 구슬을 놓으면 2 번 구멍에 빠지고 ,
- -3 과 -2 사이에 구슬을 놓으면 -3 번 구멍에 빠지고 ,
- 2 에 구슬을 놓으면 2 번 구멍,
- -3 에 놓으면 -3 번에 빠집니다.
즉 는 x 보다 크지 않는 최대 정수입니다. "x 보다 크지 않다"입니다. 같아도 상관 없습니다.
123456789101112#include <stdio.h>
#include <math.h>
int
main()
{
printf
(
"%lf\n"
,
floor
(2.3));
printf
(
"%lf\n"
,
floor
(2.8));
printf
(
"%lf\n"
,
floor
(2.0));
printf
(
"%lf\n"
,
floor
(-2.3));
printf
(
"%lf\n"
,
floor
(-2.8));
printf
(
"%lf\n"
,
floor
(-2.0));
}
4. ceil(x)
그림과 같이 경사진 곳에 구슬을 둔다고 생각합니다.
- 2 와 3 사이에 구슬을 놓으면 3 번 구멍에 빠지고 ,
- -3 과 -2 사이에 구슬을 놓으면 -2 번 구멍에 빠지고 ,
- 2 에 구슬을 놓으면 2 번 구멍,
- -3 에 놓으면 -3 번에 빠집니다.
즉 는 x 보다 작지 않는 최소 정수입니다. "x 보다 작지 않다"입니다. 같아도 상관 없습니다.
123456789101112#include <stdio.h>
#include <math.h>
int
main()
{
printf
(
"%lf\n"
,
ceil
(2.3));
printf
(
"%lf\n"
,
ceil
(2.8));
printf
(
"%lf\n"
,
ceil
(2.0));
printf
(
"%lf\n"
,
ceil
(-2.3));
printf
(
"%lf\n"
,
ceil
(-2.8));
printf
(
"%lf\n"
,
ceil
(-2.0));
}
'2_ 바삭바삭 프로그래밍 > C and C++' 카테고리의 다른 글
C - 아스키코드(ASCII) 3종 세트! (0) | 2011.10.05 |
---|---|
C - 문자를 숫자로(atoi), 숫자를 문자로(itoa) (4) | 2011.10.05 |
C++ - 상속 (0) | 2011.03.18 |
WinAPI - WinAPI에서 콘솔창 띄우기 (0) | 2011.03.05 |
C++ - 스레드를 돌리는 간단한 예제! (0) | 2011.01.26 |