用C ++计数唯一数字
假设我们有一个非负整数n。我们必须计算具有唯一数字x的所有数字,其中x的范围是0到10^n。因此,如果数字n为2,则结果将为91,因为我们要查找从0到100的数字,而没有11、22、33、44、55、66、77、88、99。
为了解决这个问题,我们将遵循以下步骤-
如果n为0,则返回1
n:=10和n中的最小值
如果n为1,则返回10
ans:=9并ret:=10
对于我2到n
回答:=回答*(9–i+2)
ret:=ret+ans
返回ret
例子(C++)
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int countNumbersWithUniqueDigits(int n) {
if(n == 0)return 1;
n = min(10, n);
if(n == 1)return 10;
int ans = 9;
int ret = 10;
for(int i = 2; i<= n; i++){
ans *= (9 - i + 2);
ret += ans;
}
return ret;
}
};
main(){
Solution ob;
cout << (ob.countNumbersWithUniqueDigits(3));
}输入值
3
输出结果
739
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练