ধরুন আমাদের একটি অ ঋণাত্মক পূর্ণসংখ্যা n আছে। আমাদেরকে অনন্য সংখ্যা x সহ সমস্ত সংখ্যা গণনা করতে হবে, যেখানে x 0 থেকে 10^n এর মধ্যে রয়েছে। তাই যদি n সংখ্যা 2 হয়, তাহলে ফলাফল হবে 91, কারণ আমরা 11, 22, 33, 44, 55, 66, 77, 88, 99 ছাড়া 0 থেকে 100 পর্যন্ত সংখ্যা খুঁজে পেতে চাই।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি n 0 হয়, তাহলে 1 ফেরত দিন
-
n :=10 এর মিনিট এবং n
-
যদি n 1 হয়, তাহলে 10 ফেরত দিন
-
উত্তর :=9 এবং ret :=10
-
আমি 2 থেকে n
পরিসরে-
ans :=ans * (9 – i + 2)
-
ret :=ret + ans
-
-
রিটার্ন রিটার্ন
উদাহরণ(C++)
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
#include <bits/stdc++.h> using namespace std; class Solution { public: int countNumbersWithUniqueDigits(int n) { if(n == 0)return 1; n = min(10, n); if(n == 1)return 10; int ans = 9; int ret = 10; for(int i = 2; i<= n; i++){ ans *= (9 - i + 2); ret += ans; } return ret; } }; main(){ Solution ob; cout << (ob.countNumbersWithUniqueDigits(3)); }
ইনপুট
3
আউটপুট
739