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

โปรแกรม C++ หาคำที่ n ในซีรีย์ 9, 33, 73,129 …


ในปัญหานี้ เราได้รับจำนวนเต็ม N ภารกิจคือการหาเทอมที่ n ในชุดที่ 9, 33, 73, 129....

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

N = 4

ผลลัพธ์

129

คำอธิบาย

ซีรีส์ไม่เกินเทอมที่ n คือ 9, 33, 73, 129...

แนวทางการแก้ปัญหา

วิธีแก้ปัญหาอยู่ที่การหาเทอมที่ n ของอนุกรม เราจะหามันด้วยวิธีทางคณิตศาสตร์ จากนั้นจึงนำสูตรคำทั่วไปมาใช้กับโปรแกรมของเรา

ขั้นแรก ให้ลบชุดข้อมูลโดยเลื่อนทีละชุด

Sum = 9 + 33 + 73 + … + t(n-1) + t(n)
- Sum = 9 + 33 + 73 + …. + t(n-1) + t(n)

0 = 9 + ((33- 9) + (73 - 33) + … + (tn) - t(n-1)) - t(n)
t(n) = 9 + (24 + 40 + 56 + …. )

24 + 40 + 56 + …. is an A.P. series with common difference 16.

นี่ทำให้คำทั่วไป

เสื้อ(n) =9 + [ ((n-1)/2)*(2*(24) + (n-1-1)*16) ]

$$t(n)=9+[\left(\frac{n-1}{2}\right)*((2*24+(n-2)*16)]$$ $$t(n )=9+[\left(\frac{n-1}{2}\right)*((2*24+(n-2)*8)]$$

เสื้อ(n) =9 + [(n - 1) * ((24) + (n - 2) * 8]

เสื้อ(n) =9 + [(n - 1) * ((24) + 8n - 16]

เสื้อ(n) =9 + [(n - 1) * (8 + 8n]

เสื้อ(n) =9 + 8 * [(n - 1) * (n + 1)]

t(n) =9 + 8 * [n 2 - 1 2 ]

t(n) =9 + 8 * n 2 - 8

t(n) =8 * n 2 +1

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

ตัวอย่าง

#include <iostream>
using namespace std;
int findNthTerm(int n) {
   return (8*n*n) + 1 ;
}
int main(){
   int n = 12;
   cout<<"The series is 9, 33, 73, 129...\n";
   cout<<n<<"th term of the series is "<<findNthTerm(n);
   return 0;
}

ผลลัพธ์

The series is 9, 33, 73, 129...
12th term of the series is 1153