# 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 through 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;` ` ` `// Traverse 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 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 /= ` `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` `;` ` ` ` ` `// Traverse 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.` |

## Python3

`# Python3 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` ` ` `# Traverse 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 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 /= 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;` ` ` ` ` `// Traverse 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` |

## Javascript

`<script>` `// JavaScript program to count numbers from 1 to n with` `// 0 as a digit` `// Returns 1 if x has 0, else 0` `function` `has0(x)` `{` ` ` `// Traverse through 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 = Math.floor(x / 10);` ` ` `}` ` ` `return` `0;` `}` `// Returns count of numbers from 1 to n with 0 as digit` `function` `getCount(n)` `{` ` ` `// Initialize count of numbers having 0 as digit` ` ` `let count = 0;` ` ` `// Traverse through all numbers and for every number` ` ` `// check if it has 0.` ` ` `for` `(let i=1; i<=n; i++)` ` ` `count += has0(i);` ` ` `return` `count;` `}` `// Driver program` ` ` `let n = 107;` ` ` `document.write(` `"Count of numbers from 1"` `+ ` `" to "` ` ` `+ n + ` `" is "` `+ getCount(n));` `// This code is contributed by Surbhi Tyagi.` `</script>` |

**Output:**

Count of numbers from 1 to 107 is 17

Refer below post for an 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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.