classSolution { public: intcountNumbersWithUniqueDigits(int n){ if(n == 0) return1; int a = 0, sum = 1, tmp = 0; for(int i = 2; i <= n; ++i) { a = a * 10 + (9 * sum - a) * (i - 1); // 每一种不重复的数字剩下有i-1位,这i-1种可能性 sum *= 10; tmp += a; } return sum * 10 - tmp; } };