ในปัญหานี้ เราได้รับจำนวนเต็ม 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