C program to multiply two number without using multiplication(*) operator


In this example, you will learn about C program to multiply two numbers without using multiplication operator (*).

C program to multiply two numbers without using multiplication operator(*)

You might be wondering how it is possible:

Let’s see following example.

4 * 5 = 20
How it works?
4 added 5 times
(4 + 4 + 4 + 4 + 4) = 20

Let’s implement this logic in the source code with three different methods.

First, go through following articles for proper understanding.

#Example 1: C program to multiply two numbers without using multiplication operator (*)

//Multiplication of two numbers
#include <stdio.h>

int main()
{
   int x, y; //declaring two integer variable
   int product = 0; //initializing product to zero

   printf("Enter two integers:\n");
   scanf("%d%d", &x, &y);

   //loop to calculate product
   while(y != 0)
   {
      product += x;
      y--;
   }

   printf("\nProuduct = %d\n", product);
   return 0;
}

Output

c multiplication program

#Example 2: C program to multiply two numbers using recursion

//Multiplication of two numbers using recursive function
#include <stdio.h>

//function prototype for recursive function
int product( int n1, int n2);

int main ()
{
   int x, y;

   printf("Enter two integers:\n");
   scanf("%d%d", &x, &y);

   //calling recursive function
   printf("\nProuduct = %d\n", product(x, y));
   return 0;
}

//body of recursive function
int product(int n1, int n2)
{
   if(n2 == 0)
      return 0;

   if(n2 > 0)
      return (n1 + product(n1, n2 - 1));

   if(n2 < 0)
      return -product(n1, -n2);
}

Output

c multiplication program using recursion

Explanation

In the above program, we have used product() recursion function for multiplying two numbers.

product() function uses three if condition to check whether the number entered by the user is equal, greater or smaller than zero.

#Example 3: C program to multiply two numbers using a pointer

//Multiplication of two numbers using pointer

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int x, y;
   char *p;

   printf("Enter two integers:\n");
   scanf("%d%d", &x, &y);

   p = (char *)x;

   while(--y)
      p = &p[x];

   printf("\nProuduct = %d\n", p);
   free(p);
   return 0;
}

Output

c program to multiply using pointer

Explanation

In the above program, we have used a pointer for multiplication of two numbers.

At first, we have placed the content of x into p using p = (char *) x.

Inside while loop, we have added the content of x to p using p = &p[x].

Finally, we have freed the pointer memory using free(p).