Trong bài toán này, chúng ta được cho một số N. Nhiệm vụ của chúng ta là tạo một Chương trình để tìm số hạng thứ N của chuỗi 0, 2, 1, 3, 1, 5, 2, 7, 3 ... trong C ++.
Mô tả sự cố - Chúng tôi được cung cấp Bộ sách -
0, 2, 1, 3, 1, 5, 2, 7, 3 ... N hạn
Để tìm số hạng thứ N của chuỗi này, chúng ta sẽ tính số hạng tổng quát của chuỗi và sau đó tìm số hạng thứ N.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào - N =7
Đầu ra - 2
Phương pháp tiếp cận giải pháp:
Để giải bài toán và tìm công thức chung cho dãy số. Chúng ta cần quan sát kỹ loạt vì bên trong nó có hai loạt khác nhau. Loại chuỗi này hơi khó hiểu khi bắt đầu nhưng khi bạn biết rằng đó là chuỗi hỗn hợp, bạn sẽ dễ dàng tìm thấy thuật ngữ chung.
Ở đây, có hai chuỗi 'một trên chỉ số chẵn và một trên chỉ số lẻ. Hãy xem chúng riêng lẻ.
Chuỗi chỉ mục chẵn:0, 1, 1, 2, 3,….
Chuỗi chỉ mục lẻ:2, 3, 5, 7,…
Bây giờ, bạn phải rõ ràng rằng chuỗi chẵn là chuỗi Fibonacci. Và dãy số lẻ là dãy số nguyên tố.
Vì vậy, bộ truyện là -
Nếu N là số lẻ, (N / 2) lập chỉ mục chuỗi fibonacci.
Nếu N là số chẵn, (N / 2) chỉ số nguyên tố.
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
#include<iostream> using namespace std; int findNthPrimeTerm(int n) { int primeCount = 0; for (int i = 2; ; i++) { int isPrime = 1; for (int j = 2; j <= (i/2); j++) { if (i % j == 0) { isPrime = 0; break; } } if (isPrime) primeCount++; if (primeCount == n) { return i; break; } } return -1; } int FibonaciiNthTerm(int n) { int nthTerm = 1, last = 0; int i; if( n == 0) return 0; else if( n == 1) return 1; else{ for (i = 2; i <= n; i++) { nthTerm += last; last = nthTerm - last ; } return nthTerm; } } int findNTerm(int N) { if (N % 2 == 0) return findNthPrimeTerm(N/2); else { return FibonaciiNthTerm(N/2); } } int main() { int N = 13; cout<<N<<"th term of the series is "<<findNTerm(N)<<endl; N = 4; cout<<N<<"th term of the series is "<<findNTerm(N); return 0; }
Đầu ra:
13th term of the series is 8 4th term of the series is 3