이 문제에서는 등차수열(AP)의 공차인 값 d가 주어집니다. 이 등차수열은 사변형의 네 내각 전체를 나타내며, 우리의 목표는 C++로 사변형의 각도를 구하는 프로그램을 작성하는 것입니다.
문제 설명
사변형의 네 각도가 공차 d를 가지는 등차수열 형태로 주어질 때, 각각의 각도를 계산해야 합니다.
예시로 문제 이해하기
입력
d = 15
출력
67.5, 82.5, 97.5, 112.5
설명
첫 번째 각: x 두 번째 각: x + 15 세 번째 각: x + 30 네 번째 각: x + 45
사변형의 내각의 합은 항상 360도입니다. 이를 식으로 표현하면 다음과 같습니다.
x + (x + 15) + (x + 30) + (x + 45) = 360 4x + 90 = 360 4x = 270 => x = 67.5
해결 접근 방법
이 문제는 등차수열과 사변형의 기본 성질을 활용하면 간단하게 해결할 수 있습니다.
x부터 시작하는 등차수열의 처음 네 항을 사변형의 각도라고 하면, 각도는 각각 x, x+d, x+2d, x+3d가 됩니다.
사변형의 모든 내각의 합은 360도이므로, 다음과 같이 방정식을 세울 수 있습니다.
x + (x+d) + (x+2d) + (x+3d) = 360 4x + 6d = 360 2x + 3d = 180 => x = (180 - 3d) / 2
공차 d의 값을 이미 알고 있으므로, 위 공식에 대입하면 첫 번째 각도를 바로 구할 수 있습니다. 첫 번째 각도를 구한 뒤에는 여기에 d씩 더해가며 나머지 세 각도도 순서대로 계산할 수 있습니다.
해결 방법 동작 예시 프로그램
코드
#include <iostream>
using namespace std;
float findAngle(float d){
return ((180 - (3*d))/2);
}
int main(){
float d = 25;
float a = findAngle(d);
cout<<"The angles of the quadrilateral are: "<<a<<"\t"<<(a+d)<<"\t"<<(a+ 2*d)<<"\t" <<(a+3*d);
return 0;
}
출력
The angles of the quadrilateral are: 52.5 77.5 102.5 127.5
코드 설명
함수 findAngle()은 공식 x = (180 − 3d) / 2를 그대로 구현한 것으로, 공차 d를 입력받아 첫 번째 각도를 반환합니다. main() 함수에서는 이 값을 기준으로 a, a+d, a+2d, a+3d를 차례로 출력하여 사변형의 네 각도를 보여줍니다.
d = 25를 대입하면 x = (180 − 75) / 2 = 52.5가 되고, 따라서 네 각도는 52.5°, 77.5°, 102.5°, 127.5°로 계산됩니다. 이 네 값의 합이 정확히 360도가 되는 것을 확인할 수 있습니다.
이 풀이는 단순한 산술 연산만 사용하므로 시간 복잡도는 O(1)이며, 입력 크기와 무관하게 항상 일정한 시간 안에 결과를 얻을 수 있다는 장점이 있습니다.