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