আমাদের ইনপুট হিসাবে N নম্বর দেওয়া হয়েছে৷ N-এ দুটি ক্রিয়াকলাপ সম্পাদন করুন এবং প্রক্রিয়ায় উৎপন্ন অনন্য সংখ্যার গণনা শনাক্ত করুন। ধাপগুলো হবে -
-
নম্বরে 1 যোগ করুন
-
উত্পন্ন সংখ্যা থেকে পরবর্তী শূন্যগুলি সরান, যদি থাকে
যদি N 8 হয় তাহলে উৎপন্ন সংখ্যা হবে
ধাপ 1− 8 → 9 →
প্রয়োগ করা হচ্ছেধাপ 2− 1 → (10 থেকে 0 সরানো হয়েছে)
প্রয়োগ করা হচ্ছেধাপ 1 প্রয়োগ করা হচ্ছে:2 → 3 → 4 → 5 → 6 → 7 → 8 (একই ক্রম)
অনন্য সংখ্যার গণনা হবে 9।
উদাহরণস্বরূপ
ইনপুট
N=21
আউটপুট
একটি যোগ করে এবং অনুগামী শূন্য অপসারণ করে N থেকে উৎপন্ন অনন্য সংখ্যার সংখ্যা হল:18
ব্যাখ্যা
<পূর্ব>সংখ্যা হবে:21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3 −−−এখন একই ক্রম অনন্য সংখ্যা হল:18ইনপুট
N=38
আউটপুট
একটি যোগ করে এবং পরবর্তী শূন্য অপসারণের মাধ্যমে N থেকে উৎপন্ন অনন্য সংখ্যার সংখ্যা হল:11
ব্যাখ্যা
সংখ্যাগুলি হবে:38, 39, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4 −−−এখন একই ক্রম অনন্য সংখ্যা হল:11
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি −
এই পদ্ধতিতে আমরা একটি ক্রমবিহীন সেট তৈরি করব যাতে ধাপ 1 এবং 2 প্রয়োগ করার পরে তৈরি হওয়া সমস্ত অনন্য সংখ্যা থাকবে। যদি সংখ্যাগুলি পুনরাবৃত্তি হয়, তাহলে আমরা পুনরাবৃত্তি বন্ধ করব। সেটের আকার আমাদের প্রক্রিয়ায় উৎপন্ন অনন্য সংখ্যার গণনা দেবে।
-
N সংখ্যাটিকে পূর্ণসংখ্যা হিসাবে নিন।
-
উৎপন্ন সংখ্যা সন্নিবেশ করার জন্য unordered_set
U_S নিন। -
ফাংশন unique_N(unordered_set
&U_S, int N) সেট এবং N নেয় এবং U_S সেটে সংখ্যা যোগ করে যতক্ষণ না এতে সমস্ত সংখ্যা অনন্য হয়। -
যদি U_S.count(N) 1 রিটার্ন করে তার মানে সেটে N ইতিমধ্যেই বিদ্যমান। সুতরাং সংখ্যাগুলি পুনরাবৃত্তি হবে, ফাংশন থেকে ফিরে আসবে।
-
অন্যথায় সেটে N ঢোকান এবং অপারেশন 1 প্রয়োগ করুন ( 1 দ্বারা বৃদ্ধি)।
-
N সংখ্যার পিছনের শূন্য আছে কিনা তা পরীক্ষা করুন (10 এর একাধিক)।
-
যদি N % 10 0 হয়, তাহলে এটিকে 10 দ্বারা ভাগ করে শেষের শূন্য সরিয়ে দিন।
-
কল ফাংশন অনন্য_N() আপডেট করা N.
সহ -
ফাংশন থেকে ফিরে আসার পরে, U_S সেটের আকার হিসাবে গণনা করুন।
-
গণনা হিসাবে ফলাফল প্রিন্ট করুন।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;void unique_N(unordered_set &U_S, int N){ if (U_S.count(N)){ ফেরত; } U_S.insert(N); N =N + 1; যখন (N % 10 ==0){ N =N / 10; } unique_N(U_S, N);}int main(){ int N =7; unordered_set U_S; অনন্য_N(U_S, N); int count =U_S.size(); cout<<"অদ্বিতীয় সংখ্যাগুলির গণনা যা N থেকে একটি যোগ করে এবং পরবর্তী শূন্যগুলি সরিয়ে দিয়ে তৈরি করা যেতে পারে:"< আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেএকটি যোগ করে এবং পরবর্তী শূন্য অপসারণের মাধ্যমে N থেকে উৎপন্ন অনন্য সংখ্যার সংখ্যা হল:9