如何计算一个数中不同数字的个数?

How to count the number of different digits in a number?

这是一个递归计算数字位数的代码。我可以在此代码中添加什么来计算一个数字中有多少 不同的数字 ?或者也许还有其他方法?

    int numberOfDigits(int n)
    {
    if(n==0)
    return 0;
    else
    return numberOfDigits(n/10)+1;
    }

使用套装!

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

我们把a变成一个字符串,然后把这个字符串变成一组字符。由于集合不能包含重复值,集合的计数是不同数字的个数。