#43. [백준_C언어] 3053 : 택시 기하학

 

 입력 코드 

#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>

main() {
	double R;
	scanf("%lf", &R);

	printf("%lf\n", M_PI*R*R);
	printf("%lf\n", 2*R*R);
}

 

 

 코드 설명 

#수학 #기하학

#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>

main() {
	float R;
	scanf("%f", &R);

	printf("%f\n", M_PI*R*R);
	printf("%f\n", 2*R*R);
}

처음에는 float 타입으로 받았다가 틀렸다. float 타입은 소수 부분 6자리까지만 오차 없이 표현할 수 있어서 그런 것 같다.

#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>

main() {
	double R;
	scanf("%lf", &R);

	printf("%lf\n", M_PI*R*R);
	printf("%lf\n", 2*R*R);
}

택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같고,

 

두 점 T1(x1,y1), T2(x2,y2) 사이의 거리 D(T1,T2) = |x1-x2| + |y1-y2| 이므로

반지름 길이 변화에 따른 원의 넓이는 다음과 같다. (원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합)

 

 

 

참고한 사이트

lazyreview.tistory.com/114

 

[C언어] math함수에서 정확한 PI값 사용하기

정확한 PI값이라기보다는, 라이브러리에 들어있는 PI값을 가져다 써 보자. 를 열어 보자. 626번째 줄의 M_PI가 우리가 찾는 값이다. (실망스럽게도 "완벽한" PI값은 아니다. double의 한계가 있으니 이

lazyreview.tistory.com

www.tcpschool.com/c/c_datatype_basic

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

 

 

 문제 출처 

www.acmicpc.net/problem/3053

 

3053번: 택시 기하학

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

www.acmicpc.net