ในปัญหานี้ เราได้รับจำนวนเต็ม N ภารกิจคือการหาเทอมที่ n ในซีรีย์ 7, 15, 32....
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
N = 6
ผลลัพธ์
281
คำอธิบาย
อนุกรมที่ไม่เกินเทอมที่ n คือ 7, 15, 32, 67, 138, 281
แนวทางการแก้ปัญหา
วิธีแก้ปัญหาอยู่ที่การถอดรหัสชุดข้อมูล คุณจะเห็นว่าซีรีส์นี้เป็นซีรีส์ที่ผสมผสานกัน
การลบค่า
T(2) - T(1) = 15 - 7 = 8 T(3) - T(2) = 32 - 15 = 17 So, T(2) = 2*T(1) + 1 T(3) = 2*T(2) + 2 T(n) = 2*T(n-1) + (n-1)
ดังนั้น ค่าของเทอมที่ n จะพบโดยใช้เทอมสุดท้าย ในการหาค่าเหล่านี้ เราจะวนจาก 1 ถึง n และหาค่าแต่ละค่าของอนุกรมนั้น
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include <iostream>
using namespace std;
int findNthTerm(int n) {
if (n == 1)
return 7;
int termN = 7;
for (int i = 2; i <= n; i++)
termN = 2*termN + (i - 1);
return termN;
}
int main(){
int n = 12;
cout<<"The series is 7, 15, 32, 67...\n";
cout<<n<<"th term of the series is "<<findNthTerm(n);
return 0;
} ผลลัพธ์
The series is 7, 15, 32, 67... 12th term of the series is 18419