C++ program to Zoom digits of an integer



Zooming digits means printing the digits of a given number in an enlarged form using special characters. In this article, we will learn to print (display) enlarged (zoomed) form of the digits of a given number.

Below is the representation of digits 01438 in zoom format,

zoom digit of an integers

Example of Zoom Digits in Integers Form

To generate the zoomed digit, we define the pattern logic for each digit based on its respective function prototype. Then, we create a function that sets the switch-case logic which processes the selected digit based on either user input or a given number.

In this example, we first create prototypes for all the digit functions, with each prototype representing a different set of digits ranging from 0 to 9:

Open Compiler
#include <bits/stdc++.h> using namespace std; // Function prototype for all printing digit functions void print_zero(); void print_one(); void print_two(); void print_three(); void print_four(); void print_five(); void print_six(); void print_seven(); void print_eight(); void print_nine(); void zoom_digit(int number); // Function to print digit '0' void print_zero() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (i==0 || i==4 || j==0 || j==4) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '1' void print_one() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (j==2 || (i==1 && j==1) || i==4) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '2' void print_two() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (i==0 || i==2 || i==4 || (i==1 && j==0) || (i==3 && j==4)) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '3' void print_three() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (i==0 || i==2 || i==4 || j==4) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '4' void print_four() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (j==4 || i==2 || (j==0 && (i==0 || i==1))) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '5' void print_five() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (i==0 || i==2 || i==4 || (j==0 && i==1) || (j==4 && i==3)) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '6' void print_six() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (i==0 || i==2 || i==4 || (j==0 && (i==1 || i==3)) || (j==4 && i==3)) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '7' void print_seven() { for (int i=0 ; i<5; i++) { for (int j=0 ; j<5; j++) { if (i==0 && (j!=4) || (i==2 && (j==2 || j==4)) || j==3) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '8' void print_eight() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if (i==0 || i==2 || i==4 || (j==0 && (i==1 || i==3)) || (j==4 && (i==1 || i==3))) cout << '#'; else cout << " "; } cout << endl; } } // Function to print digit '9' void print_nine() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { if ( i==0 || i==2 || j==4 || (i==1 && j==0)) cout << '#'; else cout << " "; } cout << endl; } } // Function to process and print each digit of the number void zoom_digit(int number) { stringstream ss; ss << number; string str = ss.str(); for (int k=0; k<str.length(); k++) { cout << endl; switch(str[k]-'0'){ case 0: print_zero(); continue; case 1: print_one(); continue; case 2: print_two(); continue; case 3: print_three(); continue; case 4: print_four(); continue; case 5: print_five(); continue; case 6: print_six(); continue; case 7: print_seven(); continue; case 8: print_eight(); continue; case 9: print_nine(); continue; } } } // Main function to print Zoom digit int main() { long long number = 2546; zoom_digit(number); return 0; }

The above program produces the following result:

#####
#    
#####
    #
#####

#####
#    
#####
    #
#####

#   #
#   #
#####
    #
    #

#####
#    
#####
#   #
#####

Example of Zoom Digits in Integers Using C++ STL

In this example, we first define a separate function for each digit from 0 to 9, where each function returns a fixed 5X5 pattern represented using a vector. These patterns visually represent each digit using # characters. To convert all these digits into 5X5 representation, we use the for-loop and push_back() function and the for line representation of the digit in vertical format can be done in the last for loop.

Open Compiler
#include<iostream> #include<vector> #include<string> #include<functional> using namespace std; // Each digit printer returns a 5x5 character matrix // vector of string vector<string> zero() { return { "#####", "# #", "# #", "# #", "#####" }; } vector<string> one() { return { " # ", " ## ", " # ", " # ", "#####" }; } vector<string> two() { return { "#####", " #", "#####", "# ", "#####" }; } vector<string> three() { return { "#####", " #", "#####", " #", "#####" }; } vector<string> four() { return { "# #", "# #", "#####", " #", " #" }; } vector<string> five() { return { "#####", "# ", "#####", " #", "#####" }; } vector<string> six() { return { "#####", "# ", "#####", "# #", "#####" }; } vector<string> seven() { return { "#####", " #", " # ", " # ", " # " }; } vector<string> eight() { return { "#####", "# #", "#####", "# #", "#####" }; } vector<string> nine() { return { "#####", "# #", "#####", " #", "#####" }; } // digit printer using vector<string> void zoom_digits(long long number) { vector<function<vector<string>()>> digitMap = { zero, one, two, three, four, five, six, seven, eight, nine }; string digits = to_string(number); vector<vector<string>> bigDigits; // Convert each digit into its 5x5 representation for (char ch : digits) { int d = ch - '0'; bigDigits.push_back(digitMap[d]()); } // Print all digits line by line for (int row = 0; row < 5; ++row) { for (const auto& digit : bigDigits) { // space between digits cout << digit[row] << " "; } cout << endl; } } int main() { // given number long long number = 5293; zoom_digits(number); return 0; }

The above program produces the following result:

#####  #####  #####  #####  
#          #  #   #      #  
#####  #####  #####  #####  
    #  #          #      #  
#####  #####  #####  #####  
Updated on: 2025-06-09T11:25:27+05:30

235 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements