Open In App
Related Articles

Count the number of holes in an integer

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Given an integer num, the task is to count the number of holes in that number. The holes in each digit are given below: 

DigitNumber of Holes
01
10
20
30
41
50
61
70
82
91


Examples: 

Input: num = 6457819 
Output: 5

Input: num = 2537312 
Output:

Approach: Initialize holes = 0 and an array hole[] with the values given where hole[i] stores the number of holes in the digit i. Now, for every digit d in num update holes = holes + hole[d]. Print the holes in the end.

Below is the implementation of the above approach: 

C++

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
  
// Global array for hole values
int hole[] = { 1, 0, 0, 0, 1, 0, 1, 0, 2, 1 };
  
// Function to return the count
// of holes in num
int countHoles(int num)
{
    int holes = 0;
  
    while (num > 0) {
  
        // Last digit in num
        int d = num % 10;
  
        // Update holes
        holes += hole[d];
  
        // Remove last digit
        num /= 10;
    }
  
    // Return the count of holes
    // in the original num
    return holes;
}
  
// Driver code
int main()
{
    int num = 6457819;
  
    cout << countHoles(num);
  
    return 0;
}

                    

Java

// Java implementation of the approach
import java.io.*;
  
class GFG 
{
  
// Global array for hole values
static int hole[] = { 1, 0, 0, 0, 1, 0, 1, 0, 2, 1 };
  
// Function to return the count
// of holes in num
static int countHoles(int num)
{
    int holes = 0;
  
    while (num > 0
    {
  
        // Last digit in num
        int d = num % 10;
  
        // Update holes
        holes += hole[d];
  
        // Remove last digit
        num /= 10;
    }
  
    // Return the count of holes
    // in the original num
    return holes;
}
  
// Driver code
public static void main (String[] args) 
{
    int num = 6457819;
    System.out.println(countHoles(num));
}
}
  
// This code is contributed by 
// shk

                    

Python3

# Python3 implementation of the approach 
  
# Global array for hole values 
hole = [ 1, 0, 0, 0, 1, 0, 1, 0, 2, 1
  
# Function to return the count 
# of holes in num 
def countHoles(num): 
  
    holes = 0
  
    while (num > 0) :
      
        # Last digit in num 
        d = num % 10
  
        # Update holes 
        holes = holes + hole[d] 
  
        # Remove last digit 
        num = num // 10
      
    # Return the count of holes 
    # in the original num 
    return holes
      
# Driver code 
num = 6457819
print(countHoles(num))
  
# This code is contributed by ihritik

                    

C#

// C# implementation of the approach 
using System;
  
class GFG 
      
    // Global array for hole values 
    static int []hole = { 1, 0, 0, 0, 1, 0, 1, 0, 2, 1 }; 
      
    // Function to return the count 
    // of holes in num 
    static int countHoles(int num) 
    
        int holes = 0; 
      
        while (num > 0) 
        
      
            // Last digit in num 
            int d = num % 10; 
      
            // Update holes 
            holes += hole[d]; 
      
            // Remove last digit 
            num /= 10; 
        
      
        // Return the count of holes 
        // in the original num 
        return holes; 
    
      
    // Driver code 
    public static void Main() 
    
        int num = 6457819; 
        Console.WriteLine(countHoles(num)); 
    
  
// This code is contributed by Ryuga

                    

PHP

<?php
// PHP implementation of the approach
  
// Global array for hole values
$hole = array(1, 0, 0, 0, 1, 0, 1, 0, 2, 1);
  
// Function to return the count
// of holes in num
function countHoles($num)
{
    global $hole;
    $holes = 0;
  
    while ($num > 0)
    {
  
        // Last digit in num
        $d = $num % 10;
  
        // Update holes
        $holes += $hole[$d];
  
        // Remove last digit
        $num =  (int)($num / 10);
    }
  
    // Return the count of holes
    // in the original num
    return $holes;
}
  
// Driver code
$num = 6457819;
  
echo countHoles($num);
  
// This code is contributed 
// by Akanksha Rai
?>

                    

Javascript

<script>
  
// Javascript implementation of the approach
  
  
// Global array for hole values
let hole = [ 1, 0, 0, 0, 1, 0, 1, 0, 2, 1 ];
  
// Function to return the count
// of holes in num
function countHoles( num)
{
    let holes = 0;
  
    while (num > 0) {
  
        // Last digit in num
        let d = num % 10;
  
        // Update holes
        holes += hole[d];
  
        // Remove last digit
        num = Math.floor(num/10);
    }
  
    // Return the count of holes
    // in the original num
    return holes;
}
  
  
    // Driver Code
      
    let num = 6457819;
  
    document.write(countHoles(num));
      
</script>

                    

Output
5

Time Complexity: O(log10 (num))
Auxiliary Space: O(1), As constant extra space is used.



Last Updated : 13 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads