কম্পিউটার

C++ এ একটি যোগ করে এবং পরবর্তী শূন্য অপসারণ করে N থেকে উৎপন্ন হওয়া অনন্য সংখ্যাগুলি গণনা করুন


আমাদের ইনপুট হিসাবে 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

  1. C++ ব্যবহার করে বিটওয়াইজ এবং কমপক্ষে একটি নন-খালি সাব-অ্যারে-এর সংখ্যা

  2. সংখ্যাগুলিকে পরিসরে গণনা করুন যাতে এটিতে অঙ্কগুলি এবং q সহ এর গুণফল C++ এ অসম হয়

  3. C++ এ একটি গেমে শূন্য বা তার চেয়ে কম করা যায় এমন সংখ্যাগুলি গণনা করুন

  4. C++ তে বিশপ যে সমস্ত বর্গক্ষেত্র পরিদর্শন করতে পারে তার মোট সংখ্যা গণনা করুন