>백엔드 개발 >C++ >칠각형 수

칠각형 수

王林
王林앞으로
2023-09-24 10:33:081266검색

칠각형 수는 칠각형으로 표현할 수 있는 숫자입니다. 칠각형(7각형)의 연속적인 조합으로 표현될 수 있습니다.

칠각형 수

첫 번째 칠각형 숫자는 1입니다. 그러므로 작은 점으로 표현될 수 있다.

칠각형 수

두 번째 칠각형 숫자는 7이며 칠각형으로 표현할 수 있습니다.

칠각형 수

세 번째 칠각형 숫자는 18이며, 이는 칠각형으로 표현되고 연속된 칠각형 레이어와 결합될 수 있습니다.

칠각형 수

네 번째 칠각형 숫자는 34입니다. 위에 표시된 방식으로 칠각형에 두 개의 연속된 칠각형 층을 더하여 34로 표시할 수 있습니다.

추가 칠각형 숫자에도 유사한 개념이 사용됩니다. 동일한 논리에 따라 처음 몇 개의 칠각형 숫자는 1, 7, 18, 34, 55, 81, 112, 148, 189, 235, 286, 342, 403

이 문제에서 우리의 임무는 임의의 양수 N을 입력으로 제공하고 N번째 칠각형 숫자를 출력으로 인쇄하는 것입니다.

예를 들어

INPUT : N=6

출력 : 81

INPUT : N=9

출력: 189

이제 이 문제를 해결하기 위해 사용할 알고리즘을 살펴보겠습니다.

알고리즘

이 문제를 해결하려면 패턴을 보고 n번째 칠각형 수를 계산해야 합니다. n번째 칠각형 수는 −

로 표현됩니다.

$$칠각형_{n}:=:frac{n}{2}(5n:-:3)$$

이 표현을 잘 살펴보면 모든 칠각형 수는 다음과 같은 형태를 가지고 있습니다

$frac{n}{2}(5n:-:3)$, 여기서 n은 칠각형 숫자의 수를 나타냅니다.

예를 들어 더 잘 이해해 봅시다.

n=1의 경우 $frac{1}{2}(5:times:1:-:3)$= 1이며 첫 번째 칠각형 숫자입니다.

n=2의 경우 $frac{2}{2}(5:times:2:-:3)$= 7이며 이는 두 번째 칠각형 수입니다.

n=3일 때 $frac{3}{2}(5:times:3:-:3)$= 18이며 ​​세 번째 칠각형 수입니다.

이제 n=8인 경우를 확인해 보겠습니다. $frac{8}{2}(5:times:8:-:3)$로 얻은 결과는 148이며, 이는 실제로 칠각형 수열 중 8번째 칠각형 수입니다.

위 표현식을 사용하여 n번째 칠각형 숫자를 얻을 수 있으므로 우리 방법에서는 이 표현식을 사용하여 n번째 칠각형 숫자를 계산합니다. 여기서 n은 임의의 양수일 수 있습니다.

방법

다음 단계로 설명하겠습니다.

  • 양수 N을 입력으로 받아 해당 칠각형 값 N을 계산하세요.

  • N번째 칠각형 수를 계산하는 함수를 초기화합니다.

  • 알고리즘 섹션에 언급된 표현식, 즉 $frac{N}{2}(5N:-:3)$을 사용하여 N번째 칠각형 수를 계산하고 이를 임의의 변수에 저장합니다.

  • 양수 값 N에 해당하는 N번째 칠각형 숫자의 값이 될 저장된 변수를 반환합니다.

NOTE − 위 수식을 사용하여 N번째 칠각형 수를 계산할 때 소수 값으로 인한 오류를 방지하기 위해 정수 데이터 형식 대신 부동 소수점 데이터 형식을 사용하겠습니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

이 메서드를 C++로 구현하세요 −

으아아아

출력

으아아아

시간 복잡도: O(1), 왜냐하면 일정한 시간만 걸리기 때문입니다.

공간 복잡도: O(1), 추가 공간이 사용되지 않기 때문입니다.

결론

칠각형 수의 개념과 그 방법에서 사용한 n번째 칠각형 수를 계산하는 공식을 배워보았습니다.

이 글이 모든 사용자가 입력한 n번째 칠각형 숫자를 인쇄하는 개념을 배우는 데 도움이 되었기를 바랍니다.

위 내용은 칠각형 수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제