ในปัญหานี้ เราได้รับจำนวนเต็ม N งานของเราคือการหาพจน์ที่ N ของอนุกรมที่กำหนด −
0, 0, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8, 18, 9, 20, 10…
ตัวอย่างเพื่อความเข้าใจ
Input − N = 6 Output − 2
แนวทางแก้ปัญหา
เพื่อหาพจน์ที่ N เราต้องสังเกตอนุกรมอย่างใกล้ชิด อนุกรมนี้เป็นการผสมของ 2 อนุกรมย่อย คือ พจน์คู่ และ พจน์คี่
ตำแหน่งคู่ (Even positions):
- T(2) = 0
- T(4) = 1
- T(6) = 2
- T(8) = 3
- T(10) = 4
ค่าที่ T(n) เมื่อ n เป็นคู่ คือ {(n/2) - 1}
ตำแหน่งคี่ (Odd positions):
- T(1) = 0
- T(3) = 2
- T(5) = 4
- T(7) = 6
- T(9) = 8
ค่าที่ T(n) เมื่อ n เป็นคี่ คือ {n - 1}
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
bool isEven(int n) {
if (n % 2 == 0)
return true;
return false;
}
int findNthTerm(int n) {
if (isEven(n))
return ((n / 2) - 1);
else
return (n - 1);
}
int main() {
int N = 45;
cout << N << "th term of the series is " << findNthTerm(N);
return 0;
}
ผลลัพธ์
45th term of the series is 44