codescracker
c++

C++ Program to Find and Print Product of Digits of a Number



« C++ Tutorial C++ Example »

This article provides some programs in C++ that find and prints product of digits of a number entered by user at run-time. The program is created in following ways:

And at last, one extra program is also included that finds the product of only non-zero digit of given number.

Find Product of Digits of a Number using while Loop

The question is, write a C++ program that receives a number from user and print 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 above C++ program on finding and printing the product of all digits of a given number is given in the following snapshot:

c++ program find product of digits of number

Now supply the input say 1293 as number and press ENTER key to print the product of its all four digits like shown in the snapshot given here:

find product of digits of number c++

The dry run of following block of code, from above program:

while(num>0)
{
   rem = num%10;
   prod = prod*rem;
   num = num/10;
}

with prod=1 and num=1293 goes like:

Find Product of Digits of Number using for Loop

This program does the same job as of previous program, but created using for loop, instead of while:

#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 above program, the following two statements:

rem = num%10;
prod = prod*rem;

can also be replaced with single statement given below:

prod = prod*(num%10);

Find Product of Digits (except 0) of Number

Since both the program given above gives 0 as output if any digit of given number is 0. Therefore let's modify and create another program that find product of only non-zero digit of 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 same output as of previous program. But previous program prints 0 if any digit of given number is equal to 0, whereas this program does not print 0 if any digit of given number is 0. Rather this only multiplies non-zero digits and prints the multiplication result.

Modified Version of Previous Program

This program is created in a way, to provide little good user interface by showing the ongoing multiplication of digit 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 following output when user enters a number say 12032 as input:

print product of digits of number c++

You're seeing the digit in the form 2*3*2*1 (in reverse order). Because while finding the remainder using rem = num%10; gives the last digit. But you can reverse the number first then do the task.

To do it, put reverse of a number code in very first if's body and initialize reversed result to the number num itself then proceed. Come on, do it yourself for practice.

C++ Online Test


« C++ Tutorial C++ Example »



© Copyright 2021. All Rights Reserved.

CodesCracker