# Count numbers having 0 as a digit

Count how many integers from 1 to N contains 0’s as a digit.

Examples:

```Input:  n = 9
Output: 0

Input: n = 107
Output: 17
The numbers having 0 are 10, 20,..90, 100, 101..107

Input: n = 155
Output: 24
The numbers having 0 are 10, 20,..90, 100, 101..110,
120, ..150.
```

The idea is to traverse all numbers from 1 to n. For every traversed number, traverse through its digits, if any digit is 0, increment count. Below is the implementation of the above idea :

## C++

 `// C++ program to count numbers from 1 to n with ` `// 0 as a digit ` `#include ` `using` `namespace` `std; ` ` `  `// Returns 1 if x has 0, else 0 ` `int` `has0(``int` `x) ` `{ ` `    ``// Traverse througn all digits of ` `    ``// x to check if it has 0. ` `    ``while` `(x) ` `    ``{ ` `        ``// If current digit is 0, return true ` `        ``if` `(x % 10 == 0) ` `          ``return` `1; ` ` `  `        ``x /= 10; ` `    ``} ` ` `  `    ``return` `0; ` `} ` ` `  `// Returns count of numbers from 1 to n with 0 as digit ` `int` `getCount(``int` `n) ` `{ ` `    ``// Initialize count of numbers having 0 as digit ` `    ``int` `count = 0; ` ` `  `    ``// Travers through all numbers and for every number ` `    ``// check if it has 0. ` `    ``for` `(``int` `i=1; i<=n; i++) ` `        ``count += has0(i); ` ` `  `    ``return` `count; ` `} ` ` `  `// Driver program ` `int` `main() ` `{ ` `    ``int` `n = 107; ` `    ``cout << ``"Count of numbers from 1"` `<< ``" to "` `         ``<< n << ``" is "` `<< getCount(n); ` `} `

## Java

 `// Java program to count numbers  ` `// from 1 to n with 0 as a digit ` `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `    ``// Returns 1 if x has 0, else 0 ` `    ``static` `int` `has0(``int` `x) ` `    ``{ ` `        ``// Traverse througn all digits ` `        ``// of x to check if it has 0. ` `        ``while` `(x != ``0``) ` `        ``{ ` `            ``// If current digit is 0, ` `            ``// return true ` `            ``if` `(x % ``10` `== ``0``) ` `            ``return` `1``; ` `     `  `            ``x /= ``10``; ` `        ``} ` `     `  `        ``return` `0``; ` `    ``} ` `     `  `    ``// Returns count of numbers ` `    ``// from 1 to n with 0 as digit ` `    ``static` `int` `getCount(``int` `n) ` `    ``{ ` `        ``// Initialize count of  ` `        ``// numbers having 0 as digit ` `        ``int` `count = ``0``; ` `     `  `        ``// Travers through all numbers ` `        ``// and for every number ` `        ``// check if it has 0. ` `        ``for` `(``int` `i = ``1``; i <= n; i++) ` `            ``count += has0(i); ` `     `  `        ``return` `count; ` `    ``} ` ` `  `     `  `// Driver program ` `public` `static` `void` `main(String args[]) ` `{ ` `  ``int` `n = ``107``; ` `  ``System.out.println(``"Count of numbers from 1"` `            ``+ ``" to "` `+n + ``" is "` `+ getCount(n)); ` `} ` `} ` ` `  `// This code is contributed by Nikita Tiwari. `

## Python 3

 `# Python 3 program to count numbers ` `# from 1 to n with 0 as a digit ` ` `  `# Returns 1 if x has 0, else 0 ` `def` `has0(x) : ` `     `  `    ``# Traverse through all digits  ` `    ``# of x to check if it has 0. ` `    ``while` `(x !``=` `0``) : ` `         `  `        ``# If current digit is 0, ` `        ``# return true ` `        ``if` `(x ``%` `10` `=``=` `0``) : ` `            ``return` `1` ` `  `        ``x ``=` `x ``/``/` `10` `     `  `    ``return` `0` ` `  ` `  `# Returns count of numbers  ` `# from 1 to n with 0 as digit ` `def` `getCount(n) : ` `     `  `    ``# Initialize count of numbers ` `    ``# having 0 as digit. ` `    ``count ``=` `0` ` `  `    ``# Travers through all numbers ` `    ``# and for every number check  ` `    ``# if it has 0. ` `    ``for` `i ``in` `range``(``1``, n ``+` `1``) : ` `        ``count ``=` `count ``+` `has0(i) ` ` `  `    ``return` `count ` ` `  ` `  `# Driver program ` `n ``=` `107` `print``(``"Count of numbers from 1"``, ``" to "``, ` `                ``n , ``" is "` `, getCount(n)) ` ` `  ` `  `# This code is contributed by Nikita tiwari. `

## C#

 `// C# program to count numbers  ` `// from 1 to n with 0 as a digit ` `using` `System; ` ` `  `class` `GFG ` `{ ` `     `  `    ``// Returns 1 if x has 0, else 0 ` `    ``static` `int` `has0(``int` `x) ` `    ``{ ` `        ``// Traverse througn all digits ` `        ``// of x to check if it has 0. ` `        ``while` `(x != 0) ` `        ``{ ` `            ``// If current digit is 0, ` `            ``// return true ` `            ``if` `(x % 10 == 0) ` `            ``return` `1; ` `     `  `            ``x /= 10; ` `        ``} ` `     `  `        ``return` `0; ` `    ``} ` `     `  `    ``// Returns count of numbers ` `    ``// from 1 to n with 0 as digit ` `    ``static` `int` `getCount(``int` `n) ` `    ``{ ` `        ``// Initialize count of  ` `        ``// numbers having 0 as digit ` `        ``int` `count = 0; ` `     `  `        ``// Travers through all numbers ` `        ``// and for every number ` `        ``// check if it has 0. ` `        ``for` `(``int` `i = 1; i <= n; i++) ` `            ``count += has0(i); ` `     `  `        ``return` `count; ` `    ``} ` ` `  `     `  `// Driver Code ` `public` `static` `void` `Main() ` `{ ` `     `  `    ``int` `n = 107; ` `    ``Console.WriteLine(``"Count of numbers from 1"` `                        ``+ ``" to "` `+n + ``" is "` `+ getCount(n)); ` `} ` `} ` ` `  `// This code is contributed by Sam007 `

Output:

`Count of numbers from 1 to 107 is 17`

Refer below post for optimized solution.

Count numbers having 0 as a digit

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

My Personal Notes arrow_drop_up

Improved By : Sam007

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.