算法学习——实现一个加法运算,不适用 + - *
2020-03-31 本文已影响0人
松花江以南
算法要求如题
需要了解下面几个概念:
运算符 | 含义 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
<< | 左移 |
>> | 右移 |
按位与 | 按位或 | 异或 | 左移1位 | 右移1位 |
---|---|---|---|---|
a & b | a | b | a ^ b | << 1 | >> 1 |
Swift代码块
class Solution {
class func add(_ a: Int, _ b: Int) -> Int {
var num1 = a
var num2 = b
while num2 != 0 {
let plus = num1 ^ num2
num2 = (num1 & num2) << 1
num1 = plus
}
return num1
}
}
Solution.add(15, 9)
Solution.add(10, 9)
Solution.add(1995, 3339)
打印结果:
24
19
5334