Skip to content

Commit facfb9e

Browse files
committed
7/5
1 parent 9956b70 commit facfb9e

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
public int countDigitOne(int n) {
3+
int count = 0;
4+
long factor = 1;
5+
6+
while (factor <= n) {
7+
long divider = factor * 10;
8+
long higher = n / divider;
9+
long current = (n / factor) % 10;
10+
long lower = n % factor;
11+
12+
if (current == 0) {
13+
count += higher * factor;
14+
} else if (current == 1) {
15+
count += (higher * factor) + (lower + 1);
16+
} else {
17+
count += (higher + 1) * factor;
18+
}
19+
20+
if (n / 10 < factor) break;
21+
factor *= 10;
22+
}
23+
24+
return count;
25+
}
26+
}

0 commit comments

Comments
 (0)