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

C++로 수열 0, 7, 8, 33, 51, 75, 102, 133...의 N번째 항 구하기

이 튜토리얼에서는 수열 0, 7, 8, 33, 51, 75, 102, 133...에서 N번째 항을 찾는 프로그램을 C++로 작성하는 방법을 살펴보겠습니다.

프로그램의 목표는 하나의 숫자 N을 입력받아, 그 위치에 해당하는 수열의 항 값을 계산하여 출력하는 것입니다.

수열의 규칙 이해하기

주어진 수열의 각 항은 아래와 같은 일반항 공식으로 표현할 수 있습니다.

N번째 항 = 2 × N² + N − 3

이 공식을 활용하면 반복문 없이도 원하는 위치의 항을 O(1)의 시간 복잡도로 즉시 계산할 수 있어 매우 효율적입니다.

예제 코드

#include <iostream>
#include <math.h>
using namespace std;
// 수열의 N번째 항 계산
int nthTerm(int n) {
    return 2 * pow(n, 2) + n - 3;
}
int main() {
    int N = 4;
    cout << nthTerm(N) << endl;
    return 0;
}

실행 결과

33

코드 설명

nthTerm() 함수는 수열의 일반항 공식인 2N² + N − 3을 그대로 구현한 함수입니다. math.h 헤더 파일의 pow() 함수를 사용해 N의 제곱을 계산한 뒤, 나머지 연산을 적용하여 최종 값을 반환합니다.

main() 함수에서는 N을 4로 설정하고 nthTerm() 함수를 호출합니다. N = 4일 때 2 × 16 + 4 − 3 = 33이 계산되어 화면에 33이 출력됩니다.

이처럼 수열의 패턴을 일반항 형태로 파악하면, 어떤 큰 N 값이 주어지더라도 한 번의 연산으로 빠르게 답을 구할 수 있습니다.