# 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<bits/stdc++.h> ` `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); ` `} ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

Output:

Count of numbers from 1 to 107 is 17

Refer below post for optimized solution.

Count numbers having 0 as a digit

This article is contributed by Dheeraj Gupta. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

## Recommended Posts:

- Count digits in a factorial | Set 2
- How to swap two numbers without using a temporary variable?
- Lucky Numbers
- Ugly Numbers
- Write a program to add two numbers in base 14
- Count of Binary Digit numbers smaller than N
- Program for Fibonacci numbers
- Average of a stream of numbers
- Add two numbers without using arithmetic operators
- To find sum of two numbers without using any operator
- Count numbers that don't contain 3
- Count the number of possible triangles
- Count numbers with same first and last digits
- Count digits in given number N which divide N
- Russian Peasant (Multiply two numbers using bitwise operators)