หาพจน์ที่ N ของอนุกรม: 1, 2, 11, 12, 21, 22, 111, 112, ... (ประกอบด้วยเลข 1 และ 2 เท่านั้น)
ตัวอย่าง: N = 8 → 112
วิธีแก้ปัญหา (Recursive Pattern)
สังเกตรูปแบบ: แต่ละพจน์สร้างจากพจน์ก่อนหน้าคูณ 10 แล้วบวก 1 หรือ 2 สลับกัน
สูตรเวียนเกิด: - T(1) = 1, T(2) = 2 - ถ้า N คู่: T(N) = T(N/2 - 1) × 10 + 2 - ถ้า N คี่: T(N) = T(N/2) × 10 + 1
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
int findNTerm(int N) {
if (N == 1) return 1;
if (N == 2) return 2;
int value;
if (N % 2 == 0) {
value = findNTerm((N / 2) - 1) * 10 + 2;
} else {
value = findNTerm(N / 2) * 10 + 1;
}
return value;
}
int main() {
int N = 12;
cout << N << "Th term of the series is " << findNTerm(N);
return 0;
}
Output
12Th term of the series is 212