1. 용도
상수 PI 3.141593
제곱(pow), 제곱근(sqrt) 사용
2. 예제
https://www.acmicpc.net/problem/3053
3053번: 택시 기하학
문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합
www.acmicpc.net
3. 문제풀이 개념
'택시 기하학'
https://librewiki.net/wiki/%ED%83%9D%EC%8B%9C_%EA%B8%B0%ED%95%98%ED%95%99
택시 기하학
Taxicab Geometry.
librewiki.net
우리가 평소 익숙하게 쓰는 기하학은 유클리드 기하학이고
택시 기하학은 장애물이 있는 도로를 가정해서
피타고라스의 정리에 의한 대각선 직선거리가 아니라
도로가 존재하는 경유거리의 합이다.
4. 소스코드
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
27
28
|
#include <iostream>
#include <cmath>
#include <math.h>
#define USE_MATH_DEFINES
using namespace std;
//USE_MATH_DEFINES : cmath에 정의된 심볼릭 상수를 사용하겠다
int main(void)
{
int radius;
double width_Euclid, width_Taxi;
cin >> radius;
width_Euclid = pow((double)radius, (double)2) * M_PI;
width_Taxi = pow((double)radius, (double)2) * (double)1/2 * (double)4;
/*
cout << fixed; // cout의 출력 자리수 고정 알림
cout.precision(6); // 소수점 아래 6자리 고정처리.
// 윗 라인 없을시 소수점 이하 0일경우 정수만 출력됨.
*/
cout << width_Euclid << endl;
cout << width_Taxi << endl;
return 0;
}
|
[구문]
USE_MATH_DEFINES
윗놈이 없으면
이미 정의된
M_PI 3.14159265358979323846 << 요놈을 활용하지 못해서
수동으로
#define M_PI 3.14159265358979323846 라고 적어줘야한다.

[구문]
cout << fixed
cout << precison(6) // 소수 6자리 이하까지 표시 (7자리에서 자동 반올림처리)

cout << fiexed, prescison과
header cmath, math.h는 자주사용되므로 배워두면 좋다.
p.s. 참고 reference
https://en.cppreference.com/w/cpp/numeric/math/pow
std::pow, std::powf, std::powl - cppreference.com
(1) float pow ( float base, float exp ); float powf( float base, float exp ); (since C++11) double pow ( double base, double exp ); (2) (3) long double pow ( long double base, long double exp ); long double powl( long double base, long dou
en.cppreference.com
'C > C++' 카테고리의 다른 글
[std] Vector (0) | 2020.03.21 |
---|---|
C++ Naming Rule (Feat. Google C++ Guide) (0) | 2020.03.08 |
Copy Constructor (0) | 2019.11.20 |
character array vs String (0) | 2019.11.10 |
[백준 2752] 세 수 정렬하기 (0) | 2019.10.28 |