ในปัญหานี้ เราได้รับหมายเลข N หน้าที่ของเราคือสร้างโปรแกรมเพื่อค้นหาเทอม N ของชุดที่ 0, 2, 1, 3, 1, 5, 2, 7, 3...ใน C++
คำอธิบายปัญหา − เราได้รับซีรีส์ -
0, 2, 1, 3, 1, 5, 2, 7, 3...N เทอม
ในการหาเทอมที่ N ของอนุกรมนี้ เราจะกำหนดพจน์ทั่วไปของอนุกรมนั้นแล้วหาเทอมที่ N
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล − N =7
ผลผลิต − 2
แนวทางการแก้ปัญหา :
เพื่อแก้ปัญหาและหาสูตรทั่วไปของอนุกรม เราจำเป็นต้องสังเกตซีรีส์นี้อย่างใกล้ชิด เนื่องจากมีซีรีส์ที่แตกต่างกันสองชุดอยู่ภายใน ซีรีย์ประเภทนี้ค่อนข้างสับสนในตอนเริ่มต้น แต่เมื่อคุณรู้ว่ามันเป็นซีรีย์ผสม คุณจะพบคำศัพท์ทั่วไปได้ง่าย
ในที่นี้ มีชุดข้อมูลสองชุดชุดหนึ่งบนดัชนีคู่และอีกชุดบนดัชนีคี่ มาดูกันทีละตัว
ชุดดัชนีคู่:0, 1, 1, 2, 3, ….
ชุดดัชนีคี่:2, 3, 5, 7, …
ตอนนี้ จะต้องชัดเจนสำหรับคุณแล้วว่า อนุกรมคู่ คือ อนุกรมฟีโบนักชี และอนุกรมคี่ก็คือชุดของจำนวนเฉพาะ
ดังนั้น ซีรีส์คือ −
ถ้า N เป็นเลขคี่ (N/2) ดัชนีอนุกรมฟีโบนักชี
ถ้า N เป็นเลขคู่ (N/2) จำนวนเฉพาะของดัชนี
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
#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; }
ผลลัพธ์:
13th term of the series is 8 4th term of the series is 3