diff options
-rw-r--r-- | sum_two_integers.c | 22 | ||||
-rw-r--r-- | sum_two_integers.py | 23 |
2 files changed, 45 insertions, 0 deletions
diff --git a/sum_two_integers.c b/sum_two_integers.c new file mode 100644 index 0000000..4fee7e9 --- /dev/null +++ b/sum_two_integers.c @@ -0,0 +1,22 @@ +// 371. Sum of Two Integers +#include "leetcode.h" + +/* + * given two integers 'a' and 'b', return the sum of the two integers without + * using the operators '+' and '-'. + */ + +int getSum(int a, int b) { + int trigger = a & b, ans = a ^ b; + while (trigger) { + int carry = (trigger & 0xFFFFFFFF) << 1; + trigger = carry & ans; + ans ^= carry; + } + return ans; +} + +int main() { + printf("%d\n", getSum(1, 2)); // expect: 3 + printf("%d\n", getSum(2, 3)); // expect: 5 +} diff --git a/sum_two_integers.py b/sum_two_integers.py new file mode 100644 index 0000000..1ed3424 --- /dev/null +++ b/sum_two_integers.py @@ -0,0 +1,23 @@ +# 371. Sum of Two Integers + +""" +given two integers 'a' and 'b', return the sum of the two integers without +using the operators '+' and '-'. +""" + + +class Solution(object): + def getSum(self, a, b): + """ + :type a: int + :type b: int + :rtype: int + """ + ab = [a, b] + return sum(ab) + + +if __name__ == "__main__": + obj = Solution() + print(obj.getSum(a=1, b=2)) + print(obj.getSum(a=2, b=3)) |