একটি ঋণাত্মক নয় পূর্ণসংখ্যা n দেওয়া আছে। ০ থেকে 10^n পরিসরে অদ্বিতীয় ডিজিটযুক্ত সব সংখ্যা x গণনা করতে হবে। উদাহরণ: n = 2 হলে ফলাফল ৯১, কারণ ০ থেকে ১০০ পর্যন্ত ১১, ২২, ৩৩, ৪৪, ৫৫, ৬৬, ৭৭, ৮৮, ৯৯ বাদ দিয়ে বাকিগুলো।
সমাধানের ধাপগুলো:
- যদি
n == 0, ১ ফেরত দিন। n := min(10, n)- যদি
n == 1, ১০ ফেরত দিন। ans := 9, ret := 10i = 2থেকেnপর্যন্ত:ans := ans * (9 - i + 2)ret := ret + ans
retফেরত দিন।
উদাহরণ (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