2016-11-26 10 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を文字列にして文字列に変換します。セットは重複する値を含むことができないので、セットのカウントは別個の数字の数です。