commit 8f4256dd97fe3ad442443201a9b893de80859c96
parent c4dfb6db4f4375729b28bd39fc90cb385b482b3d
Author: Jack Sangdahl <jack@pngu.org>
Date: Mon, 10 Mar 2025 18:40:27 -0600
371. sum of two integers
Diffstat:
2 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/sum_two_integers.c 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
@@ -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))