https://leetcode.com/problems/count-numbers-with-unique-digits/ class Solution { public: int countNumbersWithUniqueDigits(int n) { if (n < 1) { return 1; } // one digit number int count = 9; int base = 9; int cur = 9; for (int i=1; i<n; ++i) { base *= cur; cur--; count += base; } // including the last one, equivalent to including 0 return count + 1; } };