357. 计算各个位数不同的数字个数

 1 class Solution 
 2 {
 3 public:
 4     int countNumbersWithUniqueDigits(int n) 
 5     {
 6         if(n >= 11) return 8877691;
 7         vector<int> nums(11);
 8         int res = 0;
 9         nums[0] = 1;
10         nums[1] = 9;
11         nums[2] = 9*9;
12         nums[3] = 9*9*8;
13         nums[4] = 9*9*8*7;
14         nums[5] = 9*9*8*7*6;
15         nums[6] = 9*9*8*7*6*5;
16         nums[7] = 9*9*8*7*6*5*4;
17         nums[8] = 9*9*8*7*6*5*4*3;
18         nums[9] = 9*9*8*7*6*5*4*3*2;
19         nums[10] =9*9*8*7*6*5*4*3*2*1;
20         for(int i = 0;i <= n;i ++) res += nums[i];
21         return res;
22     }
23 };

 

posted @ 2020-04-22 23:01  Jinxiaobo0509  阅读(126)  评论(0)    收藏  举报