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