这是一个递归计算数字位数的代码。我可以在这段代码中添加什么来计算一个数字中有多少个不同的数字?还是必须以其他方式完成?
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
变成一个字符串,然后将字符串转换为一组字符。由于集合不能包含重复值,因此集合的计数就是不同数字的数量。