@@ -0,0 +1,699 @@
+class Solution %7B%0A    public int countDigitOne(int n) %7B%0A        int k = 0, upper = n, down = 0, base = 1;%0A%0A        int total = 0;%0A        while(upper %3E 0) %7B%0A            k = upper %25 10;%0A            upper = upper / 10;%0A           %0A            if (k %3E 1) %7B%0A                total += (upper + 1) * base;%0A            %7D else if (k == 1) %7B%0A                total += upper * base + down + 1;%0A            %7D else %7B%0A                total += upper * base;%0A            %7D%0A            // System.out.printf(%22k = %25d, upper = %25d, down = %25d, base = %25d, total = %25d%5Cn%22, %0A            // k, upper, down, base, total);%0A            %0A            down += base * k;%0A            base *= 10;%0A        %7D%0A        return total;%0A    %7D%0A%7D%0A

Create CountDigitOne.java