# Number of Digit One LeetCode Solution

Here, We see Number of Digit One LeetCode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.

# List of all LeetCode Solution

## Problem Statement

Given an integer `n`, count the total number of digit `1` appearing in all non-negative integers less than or equal to `n`.

Example 1:
Input: n = 13
Output: 6

Example 2:
Input: n = 0
Output: 0

## Number of Digit One Solution C++

``````class Solution {
public:
int countDigitOne(int n) {
int ret = 0;
for(long long int i = 1; i <= n; i*= (long long int)10){
int a = n / i;
int b = n % i;
int x = a % 10;
if(x ==1){
ret += (a / 10) * i + (b + 1);
}
else if(x == 0){
ret += (a / 10) * i;
} else {
ret += (a / 10 + 1) *i;
}
}
return ret;
}
};```Code language: HTML, XML (xml)```

## Number of Digit One Solution Java

``````class Solution {
public int countDigitOne(int n) {
int ans = 0;
for (long pow10 = 1; pow10 <= n; pow10 *= 10) {
final long divisor = pow10 * 10;
final int quotient = (int) (n / divisor);
final int remainder = (int) (n % divisor);
if (quotient > 0)
ans += quotient * pow10;
if (remainder >= pow10)
ans += Math.min(remainder - pow10 + 1, pow10);
}
return ans;
}
}```Code language: PHP (php)```

## Number of Digit One Solution JavaScript

``````var countDigitOne = function(n) {
if(n <= 0) return 0;
if(n < 10) return 1;
var base = Math.pow(10, n.toString().length - 1);
var answer = parseInt(n / base);
return countDigitOne(base - 1) * answer + (answer === 1 ? (n - base + 1) : base) + countDigitOne(n % base);
};```Code language: JavaScript (javascript)```

## Number of Digit One Solution Python

``````class Solution(object):
def countDigitOne(self, n):
ones, m = 0, 1
while m <= n:
ones += (n/m + 8) / 10 * m + (n/m % 10 == 1) * (n%m + 1)
m *= 10
return ones```Code language: HTML, XML (xml)```
Scroll to Top