Giả sử chúng ta có một chuỗi được gọi là f. Mỗi số hạng của f, tuân theo quy tắc này f [i] =f [i - 1] - f [i - 2], chúng ta phải tìm số hạng thứ N của dãy này. f [0] =X và f [1] =Y. Nếu X =2 và Y =3, và N =3. Kết quả sẽ là -2.
Nếu chúng ta quan sát kỹ điều này, sẽ có gần sáu số hạng trước khi chuỗi bắt đầu lặp lại chính nó. Vì vậy, chúng ta sẽ tìm 6 số hạng đầu tiên của chuỗi và sau đó số hạng thứ N sẽ giống với số hạng thứ (N mod 6).
Ví dụ
#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);
} Đầu ra
Term at index 3 is: -2