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

C++에서 각 항이 f[i] =f[i – 1] – f[i – 2]인 계열의 N번째 항을 찾습니다.


f라는 시리즈가 있다고 가정합니다. f의 각 항은 이 규칙을 따릅니다. f[i] =f[i – 1] – f[i – 2], 우리는 이 시퀀스의 N번째 항을 찾아야 합니다. f[0] =X 및 f[1] =Y. X =2 및 Y =3, N =3인 경우 결과는 -2입니다.

이것을 자세히 보면 시퀀스가 ​​반복되기 시작하기 전에 거의 6개의 용어가 있습니다. 따라서 시리즈의 처음 6개 항을 찾은 다음 N번째 항은 (N mod 6)번째 항과 동일합니다.

예시

#include< iostream>
using namespace std;
int searchNthTerm(int x, int y, int n) {
   int terms[6];
   terms[0] = x;
   terms[1] = y;
   for (int i = 2; i < = 5; i++)
      terms[i] = terms[i - 1] - terms[i - 2];
   return terms[n % 6];
}
int main() {
   int x = 2, y = 3, n = 3;
   cout << "Term at index " < < n << " is: "<< searchNthTerm(x, y, n);
}

출력

Term at index 3 is: -2