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

โปรแกรมหา N-th เทอมของซีรีส์ 1, 2, 11, 12, 21… ใน C++


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