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

C++로 수열 1, 8, 54, 384...의 N번째 항 구하기

이 문제에서는 정수 N이 주어지며, 우리의 과제는 수열 1, 8, 54, 384...의 N번째 항을 구하는 프로그램을 작성하는 것입니다.

예제를 통해 문제를 이해해 보겠습니다.

입력

N = 4

출력

384

설명

4번째 항 = 4 × 4 × (4!) = 16 × 24 = 384

해결 접근 방법

이 문제를 해결하는 가장 간단한 방법은 수열의 일반항 공식을 활용하는 것입니다. 먼저 수열의 패턴을 분석해 보면 다음과 같습니다.

  • n = 1 → 1 × 1 × 1! = 1
  • n = 2 → 2 × 2 × 2! = 8
  • n = 3 → 3 × 3 × 3! = 54
  • n = 4 → 4 × 4 × 4! = 384

이를 통해 각 항이 n² × n! 형태로 계산된다는 규칙을 확인할 수 있습니다. 따라서 일반항 공식은 다음과 같습니다.

N번째 항 = N × N × (N!)

여기서 N!은 팩토리얼을 의미하며, 반복문을 사용해 쉽게 계산할 수 있습니다.

구현 예제

#include <iostream>
using namespace std;

int calcFact(int N) {
    int fact = 1;
    for (int i = 1; i <= N; i++)
        fact = fact * i;
    return fact;
}

int calcNthTerm(int N) {
    return (N * N * calcFact(N));
}

int main() {
    int N = 5;
    cout << N << "번째 항의 값은 " << calcNthTerm(N);
    return 0;
}

출력

5번째 항의 값은 3000

코드 설명

calcFact() 함수는 반복문을 통해 1부터 N까지의 곱을 계산하여 팩토리얼 값을 반환합니다. calcNthTerm() 함수는 이 팩토리얼 값에 N²을 곱하여 최종 결과를 도출합니다. 시간 복잡도는 O(N)으로 매우 효율적이며, 큰 N값에 대해서도 빠르게 계산할 수 있습니다.