[BOJ 3053] 백준 3053번 택시 기하학

in kr •  5 years ago 

문제

19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다.
택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다.

D(T1,T2) = |x1-x2| + |y1-y2|

두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다.
따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다.
원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합
반지름 R이 주어졌을 때, 유클리드 기하학에서 원의 넓이와, 택시 기하학에서 원의 넓이를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 반지름 R이 주어진다. R은 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다.

풀이

간단한 수학 문제였지만 실제로 소수점 N자리까지 표시를 어떻게 할 것인가에 대한 방법만 매번 찾아보면서 또 까먹고 다시 찾게 되는 알면 간단하게 해결되는 문제였다.

#include <iostream>
#define PI 3.14159265358979323846

using namespace std;

int main(void){
    cin.tie(NULL);
    ios::sync_with_stdio(false);

    int N;
    cin >> N ;

    cout<<fixed;
    cout.precision(4);              //고정 소수점 형식
    cout.setf(ios::showpoint);      //정해신 자리수만큼 0포함 소수점 이하 출력

    cout << N * N * PI << "\n";     //R^2 * PI : 원의 넓이
    cout << N * N * 2.0000 << "\n"; //(R^2 / 2) * 4 : 삼각형의 넓이 * 4(각 사분면)
    return 0;
}
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  


@caferoman, sorry to see you have less Steem Power.
Your level lowered and you are now a Red Fish!

Do not miss the last post from @steemitboard:

The new SteemFest⁴ badge is ready
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Congratulations @caferoman! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!