Multiply two integers without using multiplication, division and bitwise operators, and no loops

1.6

By making use of recursion, we can multiply two integers with the given constraints.

To multiply x and y, recursively add x y times.

C

#include<stdio.h>
/* function to multiply two numbers x and y*/
int multiply(int x, int y)
{
   /* 0  multiplied with anything gives 0 */
   if(y == 0)
     return 0;

   /* Add x one by one */ 
   if(y > 0 )
     return (x + multiply(x, y-1));
 
  /* the case where y is negative */ 
   if(y < 0 )
     return -multiply(x, -y);
}

int main()
{
  printf("\n %d", multiply(5, -11));
  getchar();
  return 0;
}

Java

class GFG {
    
    /* function to multiply two numbers x and y*/
    static int multiply(int x, int y) {
        
        /* 0 multiplied with anything gives 0 */
        if (y == 0)
            return 0;
    
        /* Add x one by one */
        if (y > 0)
            return (x + multiply(x, y - 1));
    
        /* the case where y is negative */
        if (y < 0)
            return -multiply(x, -y);
            
        return -1;
    }
    
    // Driver code
    public static void main(String[] args) {
        
        System.out.print("\n" + multiply(5, -11));
    }
}

// This code is contributed by Anant Agarwal.


Time Complexity: O(y) where y is the second argument to function multiply().

Russian Peasant (Multiply two numbers using bitwise operators)



Please write comments if you find any of the above code/algorithm incorrect, or find better ways to solve the same problem.

GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Recommended Posts:



1.6 Average Difficulty : 1.6/5.0
Based on 39 vote(s)