ในปัญหานี้ เราได้รับหมายเลข 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