ধরুন আমাদের একটি অ ঋণাত্মক পূর্ণসংখ্যা 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