Given a number H which represent the total number of holes. The task is to find the smallest number which has that many numbers of holes.
NOTE:
- 0, 4, 6, 9 has 1 holes each and 8 has 2 holes in it.
- The number should not contain leading zeros.
Examples:
Input: H = 1
Output: 0
Input: H = 5
Output: 488
Explanation:
Number which has 5 holes in it is 488. i.e (1 + 2 + 2)
Refer: Count the number of holes in an integer
Approach:
- First of all, Check whether the number of holes given is 0 or 1, if 0 then print 1 and if 1 then print 0.
- If number of holes given is more than 1 then divide the number of holes by 2 and store the remainder in ‘rem’ variable. and quotient in ‘quo’ variable.
- Now, if value of rem variable is equal to 1 then first print 4 once and then print 8 quo number of times.
- Else print 8 only quo number of times.
Below is the implementation of the above approach:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std;
// Function that will find out // the number void printNumber( int holes)
{ // If number of holes
// equal 0 then return 1
if (holes == 0)
cout << "1" ;
// If number of holes
// equal 0 then return 0
else if (holes == 1)
cout << "0" ;
// If number of holes
// is more than 0 or 1.
else {
int rem = 0, quo = 0;
rem = holes % 2;
quo = holes / 2;
// If number of holes is
// odd
if (rem == 1)
cout << "4" ;
for ( int i = 0; i < quo; i++)
cout << "8" ;
}
} // Driver code int main()
{ int holes = 3;
// Calling Function
printNumber(holes);
return 0;
} |
Java
// Java implementation of the above approach import java.io.*;
class GFG
{ // Function that will find out // the number static void printNumber( int holes)
{ // If number of holes
// equal 0 then return 1
if (holes == 0 )
System.out.print( "1" );
// If number of holes
// equal 0 then return 0
else if (holes == 1 )
System.out.print( "0" );
// If number of holes
// is more than 0 or 1.
else
{
int rem = 0 , quo = 0 ;
rem = holes % 2 ;
quo = holes / 2 ;
// If number of holes is
// odd
if (rem == 1 )
System.out.print( "4" );
for ( int i = 0 ; i < quo; i++)
System.out.print( "8" );
}
} // Driver code public static void main (String[] args)
{ int holes = 3 ;
// Calling Function
printNumber(holes);
} } // This code is contributed by Sachin. |
Python3
# Python3 implementation of # the above approach # Function that will find out # the number def printNumber(holes):
# If number of holes
# equal 0 then return 1
if (holes = = 0 ):
print ( "1" )
# If number of holes
# equal 0 then return 0
elif (holes = = 1 ):
print ( "0" , end = "")
# If number of holes
# is more than 0 or 1.
else :
rem = 0
quo = 0
rem = holes % 2
quo = holes / / 2
# If number of holes is
# odd
if (rem = = 1 ):
print ( "4" , end = "")
for i in range (quo):
print ( "8" , end = "")
# Driver code holes = 3
# Calling Function printNumber(holes) # This code is contributed by Mohit kumar |
C#
// C# implementation of the above approach using System;
class GFG
{ // Function that will find out // the number static void printNumber( int holes)
{ // If number of holes
// equal 0 then return 1
if (holes == 0)
Console.Write ( "1" );
// If number of holes
// equal 0 then return 0
else if (holes == 1)
Console.Write ( "0" );
// If number of holes
// is more than 0 or 1.
else
{
int rem = 0, quo = 0;
rem = holes % 2;
quo = holes / 2;
// If number of holes is
// odd
if (rem == 1)
Console.Write ( "4" );
for ( int i = 0; i < quo; i++)
Console.Write ( "8" );
}
} // Driver code static public void Main ()
{ int holes = 3;
// Calling Function
printNumber(holes);
} } // This code is contributed by jit_t |
Javascript
<script> // Javascript implementation of the above approach
// Function that will find out
// the number
function printNumber(holes)
{
// If number of holes
// equal 0 then return 1
if (holes == 0)
document.write( "1" );
// If number of holes
// equal 0 then return 0
else if (holes == 1)
document.write( "0" );
// If number of holes
// is more than 0 or 1.
else {
let rem = 0, quo = 0;
rem = holes % 2;
quo = parseInt(holes / 2, 10);
// If number of holes is
// odd
if (rem == 1)
document.write( "4" );
for (let i = 0; i < quo; i++)
document.write( "8" );
}
}
let holes = 3;
// Calling Function
printNumber(holes);
// This code is contributed by divyeshrabadiya07.
</script> |
Output:
48
Time Complexity: O(n)
Auxiliary Space: O(1)
Article Tags :
Recommended Articles