头尾的特殊条件处理:n = 0时的1和起始第二位的9 int countNumbersWithUniqueDigits(int n) { int ans = 10, tmp = 9; for(int i = 1; i < n && tmp; ++i) ans += (tmp *= (10-i)); return (n == 0)?1:ans; }