Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 모츠킨 수

<시간/>

모츠킨 수열은 1, 1, 4, 9 등으로 시작합니다. 수열로 일반화된 n번째 항을 얻을 수 있습니다. 모츠킨 수열은 다음과 같습니다.

a0 =1

a1 =1

a2 =4

a3 =9

n =((2 * n + 1)/ n + 2) * M(n-1) +((3 * n - 3)/ n + 2) * M(n - 2)

알고리즘

  • 숫자 n.을 초기화합니다.

  • n.까지 반복합니다.

    • 이전 두 번호 업데이트

  • 마지막 숫자를 반환합니다.

예시

구현

다음은 위의 알고리즘을 C++로 구현한 것입니다.

#include <bits/stdc++.h>
using namespace std;
int getNthTerm(int n) {
   if(n == 0 || n == 1) {
      return 1;
   }
   int a = 1, b = 1;
   for(int i = 2; i <= n; ++i) {
      int c = ((2 * i + 1) * b + (3 * i - 3) * a) / (i + 2);
      a = b;
      b = c;
   }
   return b;
}
int main() {
   int n = 5;
   cout << getNthTerm(n) << endl;
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

21