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

โปรแกรม C++ หาคำที่ n ในซีรีย์ 7, 15, 32, …


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