[Leetcode] 第357题 计算各个位数不同的数字个数
Posted 龙场驿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Leetcode] 第357题 计算各个位数不同的数字个数相关的知识,希望对你有一定的参考价值。
一、题目描述
给定一个非负整数 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题 计算各个位数不同的数字个数的主要内容,如果未能解决你的问题,请参考以下文章