# **作業2 程式語言十八般武藝** 題目:Sum of Two Integers 1. C ``` int getSum(int a, int b){ return a+b; } ``` 2. C++ ``` class Solution { public: int getSum(int a, int b) { return a+b; } }; ``` 3. java ``` class Solution { public int getSum(int a, int b) { return a+b; } } ``` 4. python ``` class Solution(object): def getSum(self, a, b): """ :type a: int :type b: int :rtype: int """ c = 0xffffffff sum = (a ^ b) & c temp = a & b while temp: a = sum b = (temp << 1) & c sum = (a ^ b) & c temp = a & b if sum & 0x80000000: sum -= 0x100000000 return sum ``` 5. python3 ``` class Solution: def getSum(self, a: int, b: int) -> int: return sum([a,b]) ``` 6. csharp ``` public class Solution { public int GetSum(int a, int b) { while(b != 0){ int temp = a & b; a = a ^ b; b = temp << 1; } return a; } } ``` 7. javascript ``` var getSum = function(a, b) { if(b == 0) { return a; } return getSum(a ^ b, (a & b) << 1); }; ``` 8. swift ``` class Solution { func getSum(_ a: Int, _ b: Int) -> Int { var sum = a, temp = b while temp != 0 { (sum, temp) = (sum ^ temp, (sum & temp) << 1) } return sum } } ``` 9. golang ``` func getSum(a int, b int) int { for { a, b = a ^ b, (a & b) << 1 if b == 0 { break } } return a } ``` 10. php ``` class Solution { function getSum($a, $b) { while ($b != 0) { $carry = $a & $b; $a = $a ^ $b; $b = $carry <<1; } return $a; } } ```