import java.util.*; class DigitFreq { int[] digitFreq(int n) { int[] freqs = new int[10]; assert Arrays.equals(freqs, new int[]{0,0,0,0,0,0,0,0,0,0}); assert n>=0; int m=n; // special case if (m==0) { freqs[0] += 1; } while (m>0) { int d = m % 10; assert 0<=d && d<10; freqs[d] += 1; m /= 10; } return freqs; } public static void main(String[] args) { DigitFreq df = new DigitFreq(); for (int i: new int[] {0, 222226, 10, 1024} ) { System.out.println(i + ": "+ Arrays.toString(df.digitFreq(i))); } //System.out.println(10 + ": "+ df.digitFreq(10)); //System.out.println(1024 + ": "+ df.digitFreq(1024)); } }