- C++ Programming Examples
- C++ Programming Examples
- C++: Hello World
- C++: Get Input
- C++: Print Integer
- C++: Add two numbers
- C++: Add, Sub, Multiply, Div
- C++: Add Digits
- C++: Find Average and Percentage
- C++: Find Arithmetic Mean
- C++: Sum of n Natural Numbers
- C++: Sum of n Numbers
- C++: Square's Area and Perimeter
- C++: Rectangle's Area and Perimeter
- C++: Triangle's Area and Perimeter
- C++: Area and Circumference
- C++: Find Simple Interest
- C++: Fahrenheit to Celsius
- C++: Celsius to Fahrenheit
- C++: Print Prime Numbers
- C++: Reverse a Number
- C++: Swap Two Numbers
- C++: Print Multiplication Table
- C++: Find Factorial of a Number
- C++: Find Factors of a Number
- C++: Find HCF and LCM
- C++: Create a Calculator
- C++: Count Digits in a Number
- C++: First and Last Digit Sum
- C++: Product of Number Digits
- C++: Sum of Squares of Digits
- C++: Interchange Digits of Number
- C++ if-else Programs
- C++: Check Even or Odd
- C++: Check Prime or Not
- C++: Check Alphabet or Not
- C++: Check Vowel or Not
- C++: Check Leap Year or Not
- C++: Check Reverse equals Original
- C++: Check Perfect Number
- C++: Check Palindrome or Not
- C++: Check Armstrong or Not
- C++: Divisibility Test
- C++: Find Labor Wage
- C++: Find Discounted Price
- C++: Find Shipping Charge
- C++: Find Telephone Bills
- C++: Calculate Student Grade
- C++: Largest of Two Numbers
- C++: Largest of Three Numbers
- C++ Number Conversion
- C++: Decimal to Binary
- C++: Decimal to Octal
- C++: Decimal to Hexadecimal
- C++: Binary to Decimal
- C++: Binary to Octal
- C++: Binary to Hexadecimal
- C++: Octal to Decimal
- C++: Octal to Binary
- C++: Octal to Hexadecimal
- C++: Hexadecimal to Decimal
- C++: Hexadecimal to Binary
- C++: Hexadecimal to Octal
- C++ Pattern Programs
- C++: Pattern Programs
- C++: Print Diamond Pattern
- C++: Print Floyd's Triangle
- C++: Print Pascal's Triangle
- C++ Array Programs
- C++: 1D Array Program
- C++: Linear Search
- C++: Binary Search
- C++: Largest Element in an Array
- C++: Smallest Element in an Array
- C++: Find Second Largest Element
- C++: Find Second Smallest Element
- C++: Sum of All Elements
- C++: Multiply All Elements
- C++: Element in Even Position
- C++: Element in Odd Position
- C++: Print Even Numbers in Array
- C++: Print Odd Numbers in Array
- C++: Count Even or Odd Numbers
- C++: Sum of Even or Odd Numbers
- C++: Count Positive, Negative, Zero
- C++: Reverse an Array
- C++: Insert an Element
- C++: Delete an Element
- C++: Merge two Arrays
- C++: Bubble Sort
- C++: Selection Sort
- C++: Insertion Sort
- C++: Common Elements
- C++: 2D Array Programs
- C++: Add Two Matrices
- C++: Subtract Two Matrices
- C++: Transpose Matrix
- C++: Multiply Two Matrices
- C++: 3D Array Programs
- C++ String Programs
- C++: Print String
- C++: Find String Length
- C++: Compare Two Strings
- C++: Copy String
- C++: String Concatenation
- C++: Reverse a String
- C++: Delete Vowels from a String
- C++: Delete a Word from a String
- C++: Count Characters in a String
- C++: Count Words in a String
- C++: Frequency of Words
- C++: Remove Spaces from Strings
- C++: Sort a String
- C++: Uppercase to Lowercase
- C++: Lowercase to Uppercase
- C++: Swap Two Strings
- C++: Check the Anagram or Not
- C++: Capitalize All Words in a String
- C++: Get Numbers from a String
- C++ File Programs
- C++: Read a File
- C++: Write Content to a File
- C++: Append Data to a File
- C++: Read and Display File
- C++: Copy a File
- C++: Merge Two Files
- Count Characters in a File
- C++: Capitalize Every Word
- C++: List Files in Directory
- C++: Delete a File
- C++: Encrypt and Decrypt a File
- C++ Misc Programs
- C++: Print ASCII Value
- C++: Add Binary Numbers
- C++: Generate Random Numbers
- C++: Print a Smiling Face
- C++: Days into Years and Months
- C++: Add Two Numbers using Pointer
- C++: Print Fibonacci Series
- C++: Generate Armstrong Numbers
- C++: Find nCr and nPr
- C++: Get IP Address
- C++: Print Date and Time
- C++: Shutdown and Restart Computer
- C++ Programming Tutorial
- C++ Tutorial
C++ Program to Find and Print the Product of the Digits of a Number
This article provides some programs in C++ that find and print the product of the digits of a number entered by the user at run-time. The program is created in the following ways:
- Find and print the product of the digits of a number using the while loop
- Find and print the product of the digits of a number using the for loop
And at last, one extra program is also included that finds the product of the only non-zero digit of a given number.
Using a while loop, calculate the product of a number's digits
The question is: write a C++ program that receives a number from the user and prints the product or multiplication of its digit. The program given below is its answer:
#include<iostream> using namespace std; int main() { int num, rem, prod=1; cout<<"Enter a Number: "; cin>>num; while(num>0) { rem = num%10; prod = prod*rem; num = num/10; } cout<<"\nProduct of all digits of given number is: "<<prod; cout<<endl; return 0; }
The initial output produced by the above C++ program on finding and printing the product of all digits of a given number is given in the following snapshot:
Now supply the input, say 1293 as a number, and press the ENTER key to print the product of all four digits as shown in the snapshot given here:
The dry run of the following block of code from the above program:
while(num>0)
{
rem = num%10;
prod = prod*rem;
num = num/10;
}
with prod=1 and num=1293, goes like this:
- The condition num>0 or 1293>0 is satisfied.
- Therefore, program flow goes inside the loop, and all three statements get executed one by one.
- That is, num%10 or 1293%10 or 3 gets initialized to rem, prod*rem or 1*3 or 3 gets initialized to prod, and num/10 or 1293/10 or 129 gets initialized to num.
- Now the condition of the loop gets evaluated again with the new value of num.
- That is, the condition num>0 or 129>0 evaluates to true once more.
- Therefore, program flow again goes inside the loop.
- This process continues until the condition is evaluated as false.
- In this way, the product of the digits of a number gets calculated.
Find the Product of a Number's Digits Using a for Loop
This program performs the same function as the previous one, but it was written in a for loop rather than a while loop.
#include<iostream> using namespace std; int main() { int num, rem, prod; cout<<"Enter a Number: "; cin>>num; for(prod=1; num>0; num=num/10) { rem = num%10; prod = prod*rem; } cout<<"\nProduct of all digits of given number is: "<<prod; cout<<endl; return 0; }
In the above program, the following two statements:
rem = num%10; prod = prod*rem;
can also be replaced with the single statement given below:
prod = prod*(num%10);
Find the product of the digits (except 0) of a number
Since both the programs given above give 0 as output if any digit of the given number is 0, let's modify and create another program that finds the product of only one non-zero digit of the given number:
#include<iostream> using namespace std; int main() { int num, rem, prod; cout<<"Enter a Number: "; cin>>num; for(prod=1; num>0; num=num/10) { rem = num%10; if(rem>0) prod = prod*rem; } cout<<"\nProduct of all digits of given number is: "<<prod; cout<<endl; return 0; }
This program produces the same output as the previous program. But the previous program printed 0 if any digit of the given number was equal to 0, whereas this program does not print 0 if any digit of the given number is 0. Rather, this only multiplies non-zero digits and prints the multiplication result.
Modified Version of the Previous Program
This program is created in a way to provide a good user interface by showing the ongoing multiplication of digits like 3*2*4.
#include<iostream> using namespace std; int main() { int num, rem, prod=1; cout<<"Enter a Number: "; cin>>num; if(num>0) cout<<endl; else { cout<<"\nThe number must be greater than 0!\n"; return 0; } while(num>0) { rem = num%10; num /= 10; if(rem>0) { prod = prod*rem; if(num>0) cout<<rem<<"*"; else cout<<rem; } } cout<<" = "<<prod; cout<<endl; return 0; }
This program produces the following output when the user enters a number, say 12032, as input:
You're seeing the digit in the form 2*3*2*1 (in reverse order). because while finding the remainder using rem = num%10, it gives the last digit. But you can reverse the number first, then do the task.
To do it, put the reverse of a number code in the very first if's body and initialize the reversed result to the number num itself, then proceed. Come on, do it yourself for practice.
« Previous Program Next Program »