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

C++로 수열 9, 45, 243, 1377…의 N번째 항 구하기

문제 개요

이 문제에서는 하나의 정수 N이 주어지며, 다음 수열의 N번째 항을 구하는 것이 과제입니다.

9, 45, 243, 1377, 8019, …

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

입력 : N = 4
출력 : 1377

해결 접근 방법

이 문제를 해결하는 가장 간단한 방법은 수열을 관찰하여 N번째 항의 일반식을 도출하는 것입니다. 각 항을 자세히 분석해 보면 다음과 같은 규칙을 발견할 수 있습니다.

(11 + 21) × 31, (12 + 22) × 32, (13 + 23) × 33, … , (1n + 2n) × 3n

즉, N번째 항은 (1N + 2N) × 3N이라는 공식으로 표현할 수 있습니다. 실제로 값을 대입해 검증해 보면 다음과 같습니다.

  • N = 1 → (1 + 2) × 3 = 9
  • N = 2 → (1 + 4) × 9 = 45
  • N = 3 → (1 + 8) × 27 = 243
  • N = 4 → (1 + 16) × 81 = 1377
  • N = 5 → (1 + 32) × 243 = 8019

모든 항이 공식과 정확히 일치하므로, 이 일반식을 사용하면 어떤 N에 대해서도 해당 항을 즉시 계산할 수 있습니다.

예제 코드

다음은 위 해결 방법의 작동 방식을 보여주는 C++ 프로그램입니다.

#include <iostream>
#include <math.h>
using namespace std;
long findNthTermSeries(int n){
    return ( ( (pow(1, n) + pow(2, n)) )*pow(3, n) );
}
int main(){
    int n = 4;
    cout<<n<<"th term of the series is "<<findNthTermSeries(n);
    return 0;
}

코드 설명

findNthTermSeries() 함수는 C++의 pow() 함수를 활용하여 1의 n제곱과 2의 n제곱을 더한 값에 3의 n제곱을 곱한 결과를 반환합니다. main() 함수에서는 N = 4를 입력값으로 사용하여 수열의 4번째 항을 계산한 뒤 화면에 출력합니다.

출력 결과

4th term of the series is 1377