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

C++로 정육각형의 대각선 길이 구하기: 공식 유도부터 코드 구현까지

이 문제에서는 정육각형의 한 변의 길이를 나타내는 정수 n이 주어지며, 우리의 목표는 육각형의 대각선 길이를 구하는 것입니다.

문제 설명

정육각형의 한 변의 길이가 주어졌을 때, 이 육각형의 대각선 길이를 계산해야 합니다.

예제로 문제 이해하기

  • 입력: a = 7
  • 출력: 12.11

해결 접근 방법

정육각형의 대각선 길이는 다음과 같은 수학 공식으로 간단히 구할 수 있습니다.

대각선 길이 = 1.73 × a

공식 유도 과정

한 변의 길이가 a인 정육각형을 생각해 봅시다.

정육각형은 중심을 기준으로 6개의 정삼각형으로 나눌 수 있으며, 대각선과 한 변 사이의 각도는 60°입니다.

대각선 길이를 d라고 할 때, 삼각함수를 이용하면 다음 관계가 성립합니다.

(d/2) / a = sin 60°

sin 60° = d / (2 × a)

0.866 = d / (2 × a)

d = 0.866 × 2 × a

d = 1.73 × a

즉, 정육각형의 대각선 길이는 한 변의 길이에 약 1.73(√3의 근삿값)을 곱한 값과 같습니다.

C++ 구현 예제

위 해결 방법을 C++ 코드로 구현하면 다음과 같습니다.

#include <iostream>
using namespace std;

int main() {
    float a = 12;
    float d = 1.73 * a;
    cout << "대각선의 길이는 " << d;
    return 0;
}

실행 결과

대각선의 길이는 20.76

마무리

정육각형의 대각선 길이는 복잡한 계산 없이 1.73 × 변의 길이라는 간단한 공식으로 구할 수 있습니다. 이는 정육각형 내부의 기하학적 성질, 즉 대각선과 변 사이의 각이 60°라는 사실에서 비롯된 결과입니다. 시간 복잡도는 O(1)로, 어떤 입력값이든 상수 시간에 즉시 계산할 수 있다는 장점이 있습니다.