Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm số hạng thứ N của dãy f[i] = f[i-1] - f[i-2] trong C++


Giả sử có dãy f. Mỗi số hạng tuân theo quy tắc f[i] = f[i-1] - f[i-2], tìm số hạng thứ N. f[0] = X và f[1] = Y. Nếu X = 2, Y = 3, N = 3. Kết quả -2.

Nếu quan sát kỹ, dãy sẽ lặp lại sau 6 số hạng. Tìm 6 số hạng đầu rồi số hạng N sẽ bằng số hạng (N mod 6).

Ví dụ mã nguồn

#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); }

Kết quả

Term at index 3 is: -2