2016-11-26 3 views
-6

숫자의 자릿수를 재귀 적으로 계산하는 코드입니다.의 숫자가 인 숫자를 세는 데이 코드에 추가 할 수있는 것은 무엇입니까? 아니면 다른 방법이 있을까요?숫자의 다른 자릿수를 계산하는 방법은 무엇입니까?

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

"숫자의 숫자를 계산하는 코드입니다." 부정확하다. 재현 가능한 예가없는 것으로 투표를 마감합니다. –

+0

임의의 언어 태그 (C# 및 C++)를 사용하지 마십시오. –

+0

'return n.ToString(). Distinct(). Count (c => c> = '0'&& c <= '9'); –

답변

2

세트를 사용하십시오!

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

우리는 문자열로 a을 다음 문자의 집합으로 문자열을 켜십시오. 집합에는 중복 값이 ​​포함될 수 없으므로 집합의 개수는 고유 한 자릿수입니다.

관련 문제