码迷,mamicode.com
首页 > 其他好文 > 详细

[Leetcode] 第357题 计算各个位数不同的数字个数

时间:2018-12-24 22:35:21      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:输出   ret   tco   示例   public   ...   区间   int   turn   

 

一、题目描述

给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。

示例:

输入: 2
输出: 91 
解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。

二、题目解析

排列组合。第一位有9种,第二位有9种,....第10位有1种,大于10位肯定有重复,返回0

三、代码实现

class Solution {
public:
    int countNumbersWithUniqueDigits(int n) {
        if (!n)return 1;
        if (n > 10)return 0;
        int res = 10, tmp = 9;
        for (int i = 1; i < n; ++i) {
            tmp *= (10 - i);
            res += tmp;
        }
        return res;
    }
};

 

[Leetcode] 第357题 计算各个位数不同的数字个数

标签:输出   ret   tco   示例   public   ...   区间   int   turn   

原文地址:https://www.cnblogs.com/zhizhiyu/p/10171283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!