Open In App

Count the number of holes in an integer

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
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: 

Digit Number of Holes
0 1
1 0
2 0
3 0
4 1
5 0
6 1
7 0
8 2
9 1

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