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

C++로 수열 1, 6, 17, 34, 56, 86, 121, 162, …의 N번째 항 구하기

이 튜토리얼에서는 수열 1, 6, 17, 34, 56, 86, 121, 162, …의 N번째 항을 구하는 프로그램을 다뤄보겠습니다.

사용자로부터 하나의 숫자 N을 입력받으면, 우리가 해야 할 작업은 해당 위치에 있는 수열의 항 값을 계산하여 출력하는 것입니다.

수열의 일반항 공식

이 수열을 자세히 살펴보면 각 항이 3n² − 4n + 2라는 공식으로 표현될 수 있음을 알 수 있습니다. 실제로 몇 가지 값을 대입해 확인해 보겠습니다.

  • n = 1 → 3(1)² − 4(1) + 2 = 1
  • n = 2 → 3(2)² − 4(2) + 2 = 6
  • n = 3 → 3(3)² − 4(3) + 2 = 17
  • n = 4 → 3(4)² − 4(4) + 2 = 34

따라서 N번째 항을 구하려면 입력받은 N을 위 공식에 대입하기만 하면 됩니다.

예제 코드

#include <iostream>
#include <math.h>
using namespace std;

// 주어진 수열의 n번째 항을 계산하는 함수
int nthTerm(int n) {
    return 3 * pow(n, 2) - 4 * n + 2;
}

int main() {
    int N = 4;
    cout << nthTerm(N) << endl;
    return 0;
}

실행 결과

34

코드 설명

nthTerm() 함수는 정수 n을 매개변수로 받아 3n² − 4n + 2 공식을 적용한 결과를 반환합니다. main() 함수에서는 N = 4를 대입하여 네 번째 항인 34를 출력합니다. 이처럼 반복문 없이도 O(1)의 시간 복잡도로 원하는 항을 즉시 계산할 수 있다는 점이 이 방법의 장점입니다.