এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যা k-th বুম নম্বর খুঁজে বের করে।
যে সংখ্যায় মাত্র 2 এবং 3 থাকে তাকে বুম নম্বর বলে।
চলুন উপরের সমস্যা সমাধানের ধাপগুলো দেখি।
- k এর মান শুরু করুন।
- স্ট্রিংয়ের একটি সারি শুরু করুন।
- খালি স্ট্রিংটিকে সারিতে ঠেলে দিন।
- 0 এ একটি কাউন্টার ভেরিয়েবল শুরু করুন।
- একটি লুপ লিখুন যা কাউন্টার প্রদত্ত k-এর থেকে কম বা সমান না হওয়া পর্যন্ত পুনরাবৃত্তি করে৷
- সারির সামনে যান।
- সারি থেকে উপাদানটি পপ করুন।
- একটি ভেরিয়েবলের মধ্যে সারির সামনের অংশ সংরক্ষণ করুন।
- সামনে 2 যুক্ত করার পর সংখ্যাটি চাপুন।
- কাউন্টারটি বৃদ্ধি করুন এবং k কাউন্টারের সমান কিনা তা পরীক্ষা করুন।
- যদি কাউন্টারটি k এর সমান হয়, তাহলে মান প্রিন্ট করুন এবং বিরতি করুন।
- সামনে 3 যুক্ত করার পর সংখ্যাটি চাপুন।
- কাউন্টারটি বৃদ্ধি করুন এবং k কাউন্টারের সমান কিনা তা পরীক্ষা করুন।
- কাউন্টারটি বৃদ্ধি করুন এবং k কাউন্টারের সমান কিনা তা পরীক্ষা করুন।
উদাহরণ
আসুন কোডটি দেখি।
#include<bits/stdc++.h> using namespace std; void findKthBoomNumber(long long k) { queue<string> queue; queue.push(""); long long count = 0; while (count <= k) { string numberOne = queue.front(); queue.pop(); string numberTwo = numberOne; queue.push(numberOne.append("2")); count++; if (count == k) { cout << numberOne << endl; break; } queue.push(numberTwo.append("3")); count++; if (count == k) { cout << numberTwo << endl; break; } } } int main() { long long k = 45; findKthBoomNumber(k); return 0; }
আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
23332
উপসংহার
টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।