Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมหา N-th ของซีรีส์ 0, 2,1, 3, 1, 5, 2, 7, 3...ใน C++


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