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

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

filter_none

edit
close

play_arrow

link
brightness_4
code

#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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Function to multiply two numbers
# x and y
def multiply(x,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)
      
# Driver code
print(multiply(5, -11))
  
# This code is contributed by Anant Agarwal.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// Multiply two integers without
// using multiplication, division
// and bitwise operators, and no
// loops
using System;
  
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() {
          
        Console.WriteLine(multiply(5, -11));
    }
}
  
// This code is contributed by vt_m.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// function to multiply 
// two numbers x and y
function multiply($x, $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);
}
  
// Driver Code
echo multiply(5, -11);
  
// This code is contributed by mits.
?>

chevron_right



Output:

-55

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.



My Personal Notes arrow_drop_up

Improved By : Mithun Kumar



Article Tags :
Practice Tags :


2


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