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)
Improved By : Sam007