문제
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;
}
Your level lowered and you are now a Red Fish!
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @caferoman! You received a personal award!
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!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit