In this article, we will learn about python program to add two numbers without using addition operator (i.e. + operator)
Getting Started
The task is use to add two numbers in python without using + operator.
In other words,
We have to add two numbers a and b without using + operator.
Add Two Numbers in Python Without + operator
We will be using Half Adder Logic to add two numbers.
Pseudo Algorithm using Half Adder Logic
- Let’s say we want to add two numbers a and b.
- Step 1: If both numbers don’t have set bit (i.e. 1) at same position, simply XOR operation (^) gives sum of a and b.
- Step 2: Else if they have set bits at same position, AND operation (bitwise &) provides carry bits at all position.
- Step 3: Now, left shift carry bits by 1 and add it to result obtained it by performing XOR operation.
- Step 4: Repeat step 1, step 2 and step 3 until carry is zero (i.e. 0).
Python Program
def addWithoutOperator(a, b): # Run while carry is not 0 while (b != 0): # Carry contains common set bits of a and b carry = a & b ## partial sum where a^b contains sets bits either from a or b. a = a ^ b # Shifts the carry by 1 bit so that it gives required sum when added with a in next iteration. b = carry << 1 return a print("Sum = ", addWithoutOperator(15, 31))
Output:
Sum = 46
Python Program to Add Two Numbers Using Recursion
We can write above program using recursion to add two numbers in python as shown below –
def addWithoutOperator(a, b): if (b == 0): return a else: return addWithoutOperator( a ^ b, (a & b) << 1) print("Sum = ", addWithoutOperator(15, 31))
Output:
Sum = 46
In above program, calling addWithoutOperator method until carry is 0.
Time complexity: O(log b)
Space complexity: O(1)
That’s how we can write python program to add two numbers without using addition operator.
Learn more python programs at – https://tutorialwing.com/python-tutorial/