এই সমস্যায়, আমাদের একটি এলিমেন্ট N দেওয়া আছে। আমাদের কাজ হল শুধু 3 এবং 4 ডিজিট দিয়ে বানানো সংখ্যা পদ্ধতিতে Nতম সংখ্যা খুঁজে বের করা।
সंख্যা পদ্ধতির এলিমেন্টগুলো: 3, 4, 33, 34, 43, 44, 333, 334, 343, 344, …
উদাহরণ
ইনপুট
N = 6
আউটপুট
44
ব্যাখ্যা
সংখ্যা পদ্ধতির সংখ্যাগুলো: 3, 4, 33, 34, 43, 44…
সমাধানের পদ্ধতি
এই সংখ্যা পদ্ধতিটি বাইনারি সংখ্যা পদ্ধতির মতো কিন্তু ০ কে ৩ দিয়ে এবং ১ কে ৪ দিয়ে রিপ্লেস করা।
এটাকে বলুন sBinary।
সুতরাং Nতম সংখ্যা হল (N-1)-এর sBinary কনভার্সন।
এই জ্ঞান দিয়ে আমরা সহজে সমস্যাটি সমাধান করতে পারি (N-1)-এর বাইনারি ইকুইভ্যালেন্ট বের করে এবং তারপর বাইনারি নম্বারের প্রতিটি ডিজিটে ৩ যোগ করে।
প্রোগ্রাম উদাহরণ
#include <iostream>
using namespace std;
void findNthTermNumberSystem(int N) {
if (N == 1 || N == 2) {
cout << (N - 1) + 3;
return;
}
N -= 1;
findNthTermNumberSystem(N / 2);
cout << ((N % 2) + 3);
}
int main() {
int N = 12;
cout << N << "th term of the number system is ";
findNthTermNumberSystem(N);
return 0;
}
আউটপুট
12th term of the number system is 434