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

C++로 수열 0, 10, 30, 60, 100, 150, 210, 280…의 N번째 항 구하기

이 튜토리얼에서는 수열 0, 10, 30, 60, 100, 150, 210, 280...의 N번째 항을 구하는 C++ 프로그램을 다룹니다.

하나의 숫자 N이 주어졌을 때, 우리가 해야 할 일은 해당 위치에 있는 수열의 값을 계산하는 것입니다.

수열의 일반항 유도

이 수열을 자세히 살펴보면 인접한 항 사이의 차이가 10, 20, 30, 40, 50...처럼 10씩 일정하게 증가하는 패턴을 보입니다. 이는 실제로 삼각수(1, 3, 6, 10, 15, 21, 28...)에 10을 곱한 형태이며, 이를 바탕으로 N번째 항의 일반 공식을 다음과 같이 유도할 수 있습니다.

N번째 항 = 5 × N² − 5 × N = 5N(N−1)

공식을 각 항에 대입해 검증해 보면 다음과 같습니다.

  • N = 1 → 5 × 1 × 0 = 0
  • N = 2 → 5 × 2 × 1 = 10
  • N = 3 → 5 × 3 × 2 = 30
  • N = 4 → 5 × 4 × 3 = 60
  • N = 5 → 5 × 5 × 4 = 100

예제 코드

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

// 수열의 N번째 항 계산
int nthTerm(int n) {
    return 5 * pow(n, 2) - 5 * n;
}

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

출력 결과

60

코드 설명

nthTerm() 함수는 매개변수로 전달받은 n 값에 공식 5n² − 5n을 적용하여 해당 항의 값을 반환합니다. main() 함수에서는 N을 4로 설정한 뒤 함수를 호출하고, 그 결과를 화면에 출력합니다. 따라서 위 예제에서는 네 번째 항인 60이 출력됩니다.

이처럼 복잡한 반복문 없이 수열의 규칙성을 분석해 일반항 공식만 찾아내면, O(1)의 시간 복잡도로 어떤 위치의 항이든 즉시 계산할 수 있다는 점이 이 접근 방식의 가장 큰 장점입니다.