Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 사변형의 각도 구하는 프로그램 (등차수열 활용)


이 문제에서는 등차수열(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)이며, 입력 크기와 무관하게 항상 일정한 시간 안에 결과를 얻을 수 있다는 장점이 있습니다.