목차
https://www.acmicpc.net/problem/3053
코드
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double r, u_circle, t_circle;
cin >> r;
u_circle = M_PI * r * r;
t_circle = r * r * 2;
printf("%.6f\n", u_circle);
printf("%.6f", t_circle);
}
설명
생소해 보이는 택시 기하학에서 원의 정의를 이해하면 되는 문제이다.
문제에 첨부된 위키백과를 참고하면
이 부분이 기술되어있다.
이 점을 참고하면 주어진 r 기준으로 택시 기하학에서의 원은
대각선의 길이가 2*r 인 정사각형의 넓이를 구하면 되는것으로 알 수 있다.
그 경우 정사각형의 넓이는 2*r*r 이므로 이를 출력해주면 된다.
단, 유의할점은 유클리드 기하학에서의 원의 넓이를 구할때는 M_PI를 사용해야하는데
변수를 double로 하지않고 float형으로 할 시 형 변환에서 값의 손실이 발생하여 오답이 발생하므로
반드시 double로 변수를 선언하고 풀어야 하는 문제이다.
'공부 > 백준(C++) - 2022~' 카테고리의 다른 글
백준 10872번: 팩토리얼 [C++] (0) | 2022.01.23 |
---|---|
백준 1002번: 터렛 [C++] (0) | 2022.01.22 |
백준 4153번: 직각삼각형[C++] (0) | 2022.01.20 |
백준 3009번: 네 번째 점[C++] (0) | 2022.01.19 |
백준 1085번: 직사각형에서 탈출[C++] (0) | 2022.01.19 |