ในปัญหานี้ เราได้รับหมายเลข 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