স্টেপিং নম্বর হচ্ছে যেসব সংখ্যার দুটি সन्नিহিত ডিজিটের পার্থক্য ১। n ডিজিটের স্টেপিং নম্বর কতগুলো আছে, তা বের করতে হবে।
উদাহরণ: n=2 হলে আউটপুট ১৭। ১০ থেকে ৯৯ পর্যন্ত ১৭টি স্টেপিং নম্বর আছে।
অ্যালগরিদম
- n আরম্ভ করুন, count = ০
- lowest = 10^(n-1), highest = 10^n - 1
- lowest থেকে highest পর্যন্ত লুপ: isSteppingNumber(i) চেক করুন
- isSteppingNumber: ডিজিট বাই ডিজিট চেক করুন, পার্থক্য ১ নয়লে false
- সঠিক হলে count++
ইমপ্লিমেন্টেশন
#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