স্টেপিং নম্বর হল এমন একটি সংখ্যা যেখানে ধারাবাহিক অঙ্কগুলির মধ্যে পার্থক্য হল 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