Skip to content
Related Articles

Related Articles

Add two numbers using ++ and/or —

View Discussion
Improve Article
Save Article
  • Difficulty Level : Hard
  • Last Updated : 22 Jun, 2022
View Discussion
Improve Article
Save Article

Given two numbers, return a sum of them without using operators + and/or -, and using ++ and/or –.
Examples: 
 

Input: x = 10, y = 5
Output: 15

Input: x = 10, y = -5
Output: 10

We strongly recommend you to minimize your browser and try this yourself first 
The idea is to do y times x++, if y is positive, and do y times x– if y is negative. 
 

C++




// C++ program to add two numbers using ++
#include <bits/stdc++.h>
using namespace std;
 
// Returns value of x+y without using +
int add(int x, int y)
{
    // If y is positive, y times add 1 to x
    while (y > 0 && y--)
        x++;
 
    // If y is negative, y times subtract 1 from x
    while (y < 0 && y++)
        x--;
 
    return x;
}
 
int main()
{
    cout << add(43, 23) << endl;
    cout << add(43, -23) << endl;
    return 0;
}

Java




// java program to add two numbers
// using ++
 
public class GFG {
 
    // Returns value of x+y without
    // using +
    static int add(int x, int y)
    {
 
        // If y is positive, y times
        // add 1 to x
        while (y > 0 && y != 0) {
            x++;
            y--;
        }
 
        // If y is negative, y times
        // subtract 1 from x
        while (y < 0 && y != 0) {
            x--;
            y++;
        }
 
        return x;
    }
 
    // Driver code
    public static void main(String args[])
    {
        System.out.println(add(43, 23));
 
        System.out.println(add(43, -23));
    }
}
 
// This code is contributed by Sam007.

Python3




# python program to add two
# numbers using ++
 
# Returns value of x + y
# without using + def add(x, y):
     
    # If y is positive, y
    # times add 1 to x
    while (y > 0 and y):
        x = x + 1
        y = y - 1
     
    # If y is negative, y
    # times subtract 1
    # from x
    while (y < 0 and y) :
        x = x - 1
        y = y + 1
 
    return x
 
# Driver code
print(add(43, 23))
print(add(43, -23))
 
# This code is contributed
# by Sam007.

C#




// C# program to add two numbers
// using ++
using System;
 
public class GFG {
 
    // Returns value of x+y without
    // using +
    static int add(int x, int y)
    {
 
        // If y is positive, y times
        // add 1 to x
        while (y > 0 && y != 0) {
            x++;
            y--;
        }
 
        // If y is negative, y times
        // subtract 1 from x
        while (y < 0 && y != 0) {
            x--;
            y++;
        }
 
        return x;
    }
 
    // Driver code
    public static void Main()
    {
        Console.WriteLine(add(43, 23));
        Console.WriteLine(add(43, -23));
    }
}
 
// This code is contributed by Sam007.

PHP




<?php
// PHP program to add two
// numbers using ++
 
// Returns value of
// x+y without using +
function add($x, $y)
{
     
    // If y is positive,
    // y times add 1 to x
    while ($y > 0 && $y--)
       $x++;
 
    // If y is negative,
    // y times subtract
    // 1 from x
    while ($y < 0 && $y++)
       $x--;
 
    return $x;
}
 
    // Driver Code
    echo add(43, 23), "\n";
    echo add(43, -23), "\n";
 
// This code is contributed by ajit.
?>

Javascript




<script>
 
    // Javascript program to
    // add two numbers using ++
     
    // Returns value of x+y without
    // using +
    function add(x, y)
    {
   
        // If y is positive, y times
        // add 1 to x
        while (y > 0 && y != 0) {
            x++;
            y--;
        }
   
        // If y is negative, y times
        // subtract 1 from x
        while (y < 0 && y != 0) {
            x--;
            y++;
        }
   
        return x;
    }
     
    document.write(add(43, 23) + "</br>");
      document.write(add(43, -23) + "</br>");
     
</script>

Output:  

66
20

Time Complexity: O(y)

Auxiliary Space: O(1)
Thanks to Gaurav Ahirwar for suggesting the above solution.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!