是否可以递归地计算一个数中不同数字的个数? [已关闭]

问题描述 投票:0回答:1

这是一个递归计算数字位数的代码。我可以在这段代码中添加什么来计算一个数字中有多少个不同的数字?还是必须以其他方式完成?

    int numberOfDigits(int n)
    {
       if(n == 0)
          return 0;
       else
          return numberOfDigits(n/10) + 1;
    }
c# count digits
1个回答
2
投票

使用套装!

static int NumberOfDigits(int a) {
    return new HashSet<char>(Math.Abs(a).ToString()).Count;
}

我们将

a
变成一个字符串,然后将字符串转换为一组字符。由于集合不能包含重复值,因此集合的计数就是不同数字的数量。

© www.soinside.com 2019 - 2024. All rights reserved.