ในปัญหานี้ เราได้รับหมายเลข N หน้าที่ของเราคือสร้างโปรแกรมเพื่อค้นหาเทอมที่ N ของชุดที่ 1, 2, 11, 12, 21… ใน C++
คำอธิบายปัญหา
เพื่อหาเทอมที่ N ของอนุกรม -
1, 2, 11, 12, 21, 22, 111, 112, .... เงื่อนไข
เราจะหาคำศัพท์ทั่วไปของซีรีส์นี้
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
ไม่มี =8
ผลลัพธ์
112
แนวทางการแก้ปัญหา
ในการหาคำศัพท์ทั่วไป เราต้องสังเกตอนุกรมนี้อย่างใกล้ชิด ในชุดนี้เราจะเห็นว่ามีค่าเพียง 1 และ 2 เท่านั้น และทุกเทอมเป็นการสลับกันของ 1 และ 2 ดังนั้น เทอมทั่วไปจะเป็น
$$T_{(N)}=T_{(n/2)}*10 + 1,\:if\:N\:is\:odd.$$
$$T_{(N)}=T_{((n/2)-1)}*10 + 2, if\:N\:is\:even.$$
ตัวอย่าง
#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; }
ผลลัพธ์
12Th term of the series is 212