কম্পিউটার

C++ এ n ডিজিট স্টেপিং নম্বরের সংখ্যা


স্টেপিং নম্বর হল এমন একটি সংখ্যা যেখানে ধারাবাহিক অঙ্কগুলির মধ্যে পার্থক্য হল 1৷ আপনাকে একটি সংখ্যা দেওয়া হয়েছে n যা সংখ্যার সংখ্যাকে প্রতিনিধিত্ব করে৷ আপনাকে n সংখ্যা সহ মোট স্টেপিং সংখ্যা গণনা করতে হবে।

আসুন একটি উদাহরণ দেখি।

ইনপুট

2

আউটপুট

17

2 সংখ্যার সর্বনিম্ন সংখ্যা হল 10 এবং 2 সংখ্যার সর্বোচ্চ সংখ্যা হল 99৷ তাদের মধ্যে 17টি ধাপ সংখ্যা রয়েছে৷

অ্যালগরিদম

  • সংখ্যা n শুরু করুন।
  • গণনাটি ০-তে শুরু করুন।
  • n সংখ্যার সর্বনিম্ন সংখ্যা খুঁজুন যেমন, pow(10, n - 1)।
  • এন ডিজিটের সর্বোচ্চ সংখ্যা খুঁজুন যেমন, pow(10, n) - 1।
  • একটি লুপ লিখুন যা সর্বনিম্ন n সংখ্যার সংখ্যা থেকে সর্বোচ্চ n সংখ্যার সংখ্যায় পুনরাবৃত্তি করে৷
    • বর্তমান নম্বরটি স্টেপিং নম্বর কিনা তা পরীক্ষা করুন৷
    • সংখ্যার পরপর জোড়া সংখ্যার মধ্যে পার্থক্য পরীক্ষা করুন।
    • যদি কোনো পার্থক্যের ফলাফল 1 না হয়, তাহলে মিথ্যা ফেরত দিন অন্যথা সত্য।
    • বর্তমান সংখ্যাটি একটি ধাপ সংখ্যা হলে গণনা বৃদ্ধি করুন।
  • গণনা ফেরত দিন।

বাস্তবায়ন

C++

-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল
#include <bits/stdc++.h>
using namespace std;
bool isSteppingNumber(int n) {
   int previousDigit = -1;
   while (n) {
      int currentDigit = n % 10;
      if (previousDigit != -1 && abs(previousDigit - currentDigit) != 1) {
         return false;
      }
      previousDigit = currentDigit;
      n /= 10;
   }
   return true;
}
int getSteppingNumbersCount(int n) {
   int lowestNumber = pow(10, n - 1), highestNumber = pow(10, n) - 1;
   int count = 0;
   for (int i = lowestNumber; i <= highestNumber; i++) {
      if (isSteppingNumber(i)) {
         count += 1;
      }
   }
   return count;
}
int main() {
   int n = 3;
   cout << getSteppingNumbersCount(n) << endl;
   return 0;
}

আউটপুট

আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

32

  1. n প্রতিনিধিত্ব করার জন্য প্রয়োজনীয় বাইনারি ডিজিট সংখ্যার ন্যূনতম সংখ্যা গণনা করার জন্য C++ প্রোগ্রাম

  2. C++ এ মিতব্যয়ী নম্বর

  3. C++ পেন্টাটোপ নম্বর

  4. সি++ এ ডুডেনি নম্বর